redux - 元素类型无效:应为字符串/检查 `Provider` 错误的渲染方法
问题描述
我有以下代码:
import React from 'react';
import ReactDOM from 'react-dom';
import rootReducer from './redux/reducers/rootReducer';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware} from 'redux';
import {BrowserRouter} from 'react-router-dom';
import thunk from 'redux-thunk';
import Main from './Main';
import './i18n';
const store = createStore(rootReducer,
{},
applyMiddleware(thunk));
ReactDOM.render(<Provider store={store}><BrowserRouter><Main/></BrowserRouter></Provider>, document.getElementById('app'));
但是当我尝试运行它时,我得到:
元素类型无效:应为字符串(用于内置组件)或类/函数(用于复合组件)但得到:对象。
检查
Provider
.
我的Main
课看起来像这样:
function mapStateToProps(state) {
return {
dashboard: state.dashboard
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(actions, dispatch)
}
const Main = withRouter(connect(mapStateToProps, mapDispatchToProps)(App));
export default Main;
问题是什么?
解决方案
我正在使用react-redux@6.0
. 来自文档:
https ://github.com/reduxjs/react-redux/releases/tag/v6.0.0
不再支持将 store 作为 prop 传递给连接的组件。相反,您可以将自定义 context={MyContext} 属性传递给 和 。您也可以通过 {context : MyContext} 作为连接选项。
无论如何,降级5.1
解决它。