繁体   English   中英

Provider中的prop子项无效

[英]Invalid prop children in Provider

过去几周我一直在学习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')
);

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

警告:失败的prop类型:提供给Provider的类型为array无效prop children项,期望单个ReactElement。 在提供者

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

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

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

<Router history={browserHistory} routes={Routes} />之后,您有一个

尝试删除它?

同样的错误:

警告:失败的prop类型:提供给Provider的类型为array无效prop children项,期望单个ReactElement。

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

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

<Provider store={store}> <App4Connected /> </Provider>

而是以下工作正常:

<Provider store={store}>
    <App4Connected />
</Provider>

对我来说,用这种格式写错了:

ReactDOM.render(<Provider store={store}> <App /> </Provider>, document.getElementById('root'));

但这很好用:

ReactDOM.render(
    <Provider store={store}> 
        <App /> 
    </Provider>, 
    document.getElementById('root'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM