_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
或将react
和react-dom
升级到v16.4
或更高
如果你用的是纱线,你可以运行
yarn upgrade react react-dom
否则你可以使用 npm 运行
npm update react react-dom
您也可以在 package.json 和 运行 yarn install
或 npm 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
我在向入口点添加组件时遇到问题,这里立即弹出此错误,如何解决? 我也尝试只添加主要组件,但无论如何我都接受了那个错误,在 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
或将react
和react-dom
升级到v16.4
或更高
如果你用的是纱线,你可以运行
yarn upgrade react react-dom
否则你可以使用 npm 运行
npm update react react-dom
您也可以在 package.json 和 运行 yarn install
或 npm 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