redux React error 'Failed propType:提供给“Provider”的prop“children”无效,应为单个ReactElement

uyto3xhc  于 2023-03-30  发布在  React
关注(0)|答案(4)|浏览(130)

我对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
);

运行页面,它说:
失败的propType:为Provider提供的属性children无效,应为单个ReactElement
这是我安装的相关节点模块的列表:

  • React15.0.1
  • react-redux 4.4.5
  • Redux 3.4.0

实际上,我目前正在学习React与Redux,所以很难我应该怎么做.我只是按照网站上的教程(我可以给予一个链接,但它不是英语)但它只是不工作与错误消息.正如我搜索,有人说react和react-redux的升级版本,但我安装了最新版本.任何建议将非常感谢它.

sf6xfgos

sf6xfgos1#

根据文档,你可以只使用一个普通的React元素,而不是<Provider />中的函数。
因此,只需将代码更改为

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

我认为这在react@0.14之后已经改变了。

mccptt67

mccptt672#

原来的问题有一个错别字。你的回答是正确的,在正确的语法。
但是,直接原因是<App />需要在单独的行上。
如果你把它和<Provider store={store}>放在同一行,React/Redux会尝试做更多的事情。

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

e5nqia273#

我被带到这里,我只是忘记了提供一个 prop 。我会说,确保你提供了你的组件正在使用的所有 prop ,并且应该修复它。

epfja78i

epfja78i4#

我有同样的错误,但它是在一个覆盖的情况下...解决方案,为我工作的只是删除之间的白色组件 prop 。
例如:

<Overlay isVisible={global.ShowdispatchToDriverFlag} overlayStyle={{alignItems:"center",
                   justifyContent:"center",width:"95%",height:"95%",backgroundColor:"#ffffff"}}>

在上面的isvisible prop和overlaystyle之间有白色,同样删除了,错误也消失了。

相关问题