过去几周我一直在学习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')
);
App编译得很好,但我在控制台中收到以下错误:
警告:道具类型失败:提供给
children
的{{1}}类型的道具array
无效,需要一个ReactElement。 在提供者
和
未捕获的不变违规:React.Children.only预计会收到一个React元素子项。
我正在使用React Create App作为入门套件。
可以找到完整代码here。
答案 0 :(得分:11)
,
<Router history={browserHistory} routes={Routes} />
尝试删除它?
答案 1 :(得分:9)
同样的错误:
警告:道具类型失败:
children
类型的道具array
无效 提供给Provider
,期望一个ReactElement。未捕获错误:React.Children.only预计会收到一个React 元素孩子。
使用以下格式编写Provider时发生在我身上:
<Provider store={store}> <App4Connected /> </Provider>
而是以下工作正常:
<Provider store={store}>
<App4Connected />
</Provider>
答案 2 :(得分:1)
对我来说,以这种格式书写时会抛出错误:
ReactDOM.render(<Provider store={store}> <App /> </Provider>, document.getElementById('root'));
但这很好用:
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root'));