我有以下代码:
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;
出什么问题了?
答案 0 :(得分:1)
我正在使用react-redux@6.0
。从文档:
https://github.com/reduxjs/react-redux/releases/tag/v6.0.0
不再将商店作为道具传递给已连接的组件 支持的。相反,您可以将自定义context = {MyContext}属性传递给 两者和。您也可以通过{context: MyContext}作为连接选项。
无论如何,降级为5.1
即可解决。