_react.default.createContext 在使用 react-redux 时不是函数

_react.default.createContext is not a function when using react-redux

我在向入口点添加组件时遇到问题,这里立即弹出此错误,如何解决? 我也尝试只添加主要组件,但无论如何我都接受了那个错误,在 main.jsx 中只是 class 和渲染方法 return "hello world"

_react.default.createContext is not a function

// App.jsx

import React from 'react';
import { render } from 'react-dom';
import { Provider } from 'react-redux';
import { BrowserRouter } from 'react-router-dom';

import 'react-select/dist/react-select.css';

import configureStore from './Data/store/configureStore';
import Main from "./Templates/Main/Main";

const store = configureStore();
render(
    <div>
        <Provider store={store}>
            <BrowserRouter>
                <Main/>
            </BrowserRouter>
        </Provider>
    </div>,
    document.getElementById('app-root')
);

Webpack 配置

'use strict';

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  devtool: 'eval-source-map',
  entry: [
    'webpack-hot-middleware/client?reload=true',
    path.join(__dirname, 'src/app.jsx')
  ],
  resolve: {
    root: [
      path.resolve(__dirname, "src"),
    ],
    extensions: ['', '.js', '.jsx', '.css']
  },
  output: {
    path: path.join(__dirname, '/public/'),
    filename: '[name].js',
    publicPath: '/'
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: 'src/index.tpl.html',
      inject: 'body',
      filename: 'index.html'
    }),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('development')
    })
  ],
  module: {
    loaders: [{
      test: /\.jsx?$/,
      exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['es2015', 'react']
      }
    }, {
      test: /\.css$/,
      loader: 'style!css'
    }]
  }
};

和依赖关系

    "react": "^15.6.2",
    "react-addons-update": "^15.6.2",
    "react-bootstrap": "^1.0.0-beta.5",
    "react-dom": "^15.6.2",
    "react-helmet": "^5.2.0",
    "react-redux": "^6.0.0",
    "react-router": "^4.3.1",
    "react-router-dom": "^4.3.1",
    "react-select": "^1.0.0-beta13",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0",
    "sequelize": "^3.20.0",
    "sqlite3": "^4.0.6"

Google建议升级ract到16版,不过我觉得不是老版本的问题

react-redux v6.0.0 使用 React 提供的新上下文 api 为了使其正常工作,要么你需要将 react-redux 降级到 v5.x.x reactreact-dom升级到v16.4或更高

如果你用的是纱线,你可以运行

yarn upgrade react react-dom

否则你可以使用 npm 运行

npm update react react-dom

您也可以在 package.json 和 运行 yarn installnpm install

中手动更改版本

通过更新 React 和 React-dom

解决了问题
npm update react react-dom

当然关闭服务器并通过 npm start 重新启动。

每当您 git 提取或使用其他人的代码时,尝试使用以下方法将您的包更新到最新版本:

npm update

始终检查 React/React-dom 版本,尤其是当您在学习任何在线课程时导入项目时!!

此外,如果您不想通过 npm update 更新所有软件包,只需执行以下操作:

npm i react@latest react-dom@latest

希望对您有所帮助!!

我有这个错误

_react.default.createContext is not a function

然后我更新了react和react-dom到最新版本 通过使用

npm update react react-dom

这解决了我的问题。

对我来说这是一个版本冲突,我先更新了 npm,然后我 运行 npm install,试试拳头:

npm i npm@latest -g

然后

npm install

尝试使用此版本安装:yarn add react-redux@5.0.5

升级 react-dom 包对我有用 - 尝试其中一个(取决于你的包管理器)

  • npm update react react-dom

  • yarn升级react react-dom