Redux-元素类型无效:需要一个字符串/请检查“ Provider”错误的呈现方法

时间:2019-01-15 21:10:21

标签: redux react-redux

我有以下代码:

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;

出什么问题了?

1 个答案:

答案 0 :(得分:1)

我正在使用react-redux@6.0。从文档: https://github.com/reduxjs/react-redux/releases/tag/v6.0.0

  

不再将商店作为道具传递给已连接的组件   支持的。相反,您可以将自定义context = {MyContext}属性传递给   两者和。您也可以通过{context:   MyContext}作为连接选项。

无论如何,降级为5.1即可解决。