反应错误 'Failed propType: Invalid prop `children` supplied to `Provider`, expected a single ReactElement'
React error 'Failed propType: Invalid prop `children` supplied to `Provider`, expected a single ReactElement'
我对 React.js 有一些疑问。
这是我的代码:
import React from 'react';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import App from './containers/App';
import todoApp from './reducers';
let store = createStore(todoApp);
let rootElement = document.getElementById('root');
React.render(
<Provider store={store}>
{() => <App />}
</Provider>,
rootElement
);
并运行该页面,它说:
Failed propType: Invalid prop children
supplied to Provider
, expected a single ReactElement
这是我安装的相关节点模块的列表:
- 反应 15.0.1
- react-redux 4.4.5
- redux 3.4.0
其实我目前正在学习React with Redux,所以我不知道该怎么办。我只是按照网站上的教程进行操作(我可以给出 link,但它不是英文的)但它只是无法处理该错误消息。
当我搜索时,有人说升级版本的 react 和 react-redux,但我安装了最新版本。
任何建议将不胜感激。
根据 the doc,您可以只使用普通的 React 元素而不是 <Provider />
中的函数。
因此,只需将您的代码更改为
<Provider store={store}>
<App />
</Provider>
我认为自 react@0.14 以来这已经改变了。
原题有错字。您的回复在正确的语法中是正确的。
但是直接的原因是<App />
需要单独一行
如果您将它与 <Provider store={store}>
放在同一行,React/Redux 会尝试用它做更多的事情。
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
我被带到了这里,我只是忘了提供道具。我会说确保你提供 所有 你的组件正在使用的道具并且 应该 修复它。
我对 React.js 有一些疑问。 这是我的代码:
import React from 'react';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import App from './containers/App';
import todoApp from './reducers';
let store = createStore(todoApp);
let rootElement = document.getElementById('root');
React.render(
<Provider store={store}>
{() => <App />}
</Provider>,
rootElement
);
并运行该页面,它说:
Failed propType: Invalid prop
children
supplied toProvider
, expected a single ReactElement
这是我安装的相关节点模块的列表:
- 反应 15.0.1
- react-redux 4.4.5
- redux 3.4.0
其实我目前正在学习React with Redux,所以我不知道该怎么办。我只是按照网站上的教程进行操作(我可以给出 link,但它不是英文的)但它只是无法处理该错误消息。 当我搜索时,有人说升级版本的 react 和 react-redux,但我安装了最新版本。 任何建议将不胜感激。
根据 the doc,您可以只使用普通的 React 元素而不是 <Provider />
中的函数。
因此,只需将您的代码更改为
<Provider store={store}>
<App />
</Provider>
我认为自 react@0.14 以来这已经改变了。
原题有错字。您的回复在正确的语法中是正确的。
但是直接的原因是<App />
需要单独一行
如果您将它与 <Provider store={store}>
放在同一行,React/Redux 会尝试用它做更多的事情。
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
我被带到了这里,我只是忘了提供道具。我会说确保你提供 所有 你的组件正在使用的道具并且 应该 修复它。