Provider中的prop子项无效

Jja*_*ang 6 javascript reactjs redux react-redux

过去几周我一直在学习React.
首先使用简单的React开发了一个简单的聊天,现在我开始将Redux集成到我的应用程序中.

我添加了一个简单的Action,一个匹配的Reducer(以及一个root reducer)和一个Store.然后我到达了需要使用react-redux库中的Provider的部分:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { Router, browserHistory } from 'react-router';
import ConfigureStore from './Store/ConfigureStore';
import Routes from './Routes';

const store = ConfigureStore();
ReactDOM.render(
    <Provider store={store}>
        <Router history={browserHistory}
            routes={Routes} />,
    </Provider>,
    document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

应用程序编译正常,但我在控制台中收到以下错误:

警告:失败的道具类型:提供children的类型的无效道具,预期单个ReactElement.在提供者arrayProvider

未捕获的不变违规:React.Children.only预计会收到一个React元素子.

我正在使用React Create App作为入门套件.

完整代码可以在这里找到.

iam*_*nat 11

你有一个,<Router history={browserHistory} routes={Routes} />

尝试删除它?


小智 9

同样的错误:

警告:失败的道具类型: 提供children的类型的无效道具,预期单个ReactElement.arrayProvider

未捕获错误:React.Children.only预计会收到一个React元素子元素.

使用以下格式编写Provider时发生在我身上:

<Provider store={store}> <App4Connected /> </Provider>
Run Code Online (Sandbox Code Playgroud)

而是以下工作正常:

<Provider store={store}>
    <App4Connected />
</Provider>
Run Code Online (Sandbox Code Playgroud)

  • 哇谢谢.这就是诀窍.我想知道为什么. (3认同)