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

Dro*_*rop 27 reactjs react-redux react-context

将组件添加到入口点时出现问题,此错误立即在此处弹出,该如何解决?我也尝试仅添加Main组件,但是无论如何我都会遇到该错误,在main.jsx中,仅带有渲染方法的类返回“ hello world”

_react.default.createContext is not a function
Run Code Online (Sandbox Code Playgroud)

_react.default.createContext is not a function
Run Code Online (Sandbox Code Playgroud)

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'
    }]
  }
};
Run Code Online (Sandbox Code Playgroud)

和依赖

    "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"
Run Code Online (Sandbox Code Playgroud)

Google建议将ract的版本升级到16,但是我认为这不是旧版本的问题。

Shu*_*tri 57

react-redux v6.0.0使用由反应,以便为它提供工作新环境的API,要么你需要降级react-reduxv5.x.x升级react,并react-domv16.4以上

如果使用纱线,则可以运行

yarn upgrade react react-dom
Run Code Online (Sandbox Code Playgroud)

否则,您可以运行npm

npm update react react-dom
Run Code Online (Sandbox Code Playgroud)

您也可以在package.json中手动更改版本,然后运行yarn installnpm install

  • 是的,thatnk,更改为旧版本 react-redux 帮助! (2认同)
  • 是的,但也许稍后,对于测试任务15版本就足够了:) (2认同)

小智 29

我遇到了同样的问题,但更新 React 和 React-dom 没有帮助。我正在使用带有react-hook-form的NextJS 13,问题是我忘记将“使用客户端”放在页面顶部。发生此错误的原因是您无法在服务器组件中使用挂钩。

前任:

"use client"; // top to the file
Run Code Online (Sandbox Code Playgroud)

额外信息:Next.js 错误:服务器组件中不允许使用挂钩

  • 你救了我的命! (5认同)

Kam*_*ngh 6

通过更新 react 和 react-dom 解决了问题

npm update react react-dom
Run Code Online (Sandbox Code Playgroud)

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