反应错误“失败的 propType:提供给”提供者“的无效道具'子项',需要单个 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
);
并运行页面,它说:
失败的 propType:提供给
Provider
的无效 propchildren
,需要单个 ReactElement
这是我相关的已安装节点模块的列表:
- 反应 15.0.1
- React-redux 4.4.5
- Redux 3.4.0
实际上,我目前正在学习 Redux 的 React,所以我很难怎么做。 我只是按照网站上的教程(我可以提供一个链接,但它不是英语),但它只是无法处理该错误消息。当我搜索时,有人说React和React-Redux的升级版本,但我安装了最新版本。任何建议将不胜感激。
根据文档,你可以只使用普通的 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')
);
我被带到了这里,我只是忘记提供道具。我会说确保您提供了组件正在使用的所有道具,并且应该可以修复它。
我有同样的错误,但这是在覆盖的情况下......对我有用的解决方案只是 删除组件道具之间的空格 .
例如:
<Overlay isVisible={global.ShowdispatchToDriverFlag} overlayStyle={{alignItems:"center",
justifyContent:"center",width:"95%",height:"95%",backgroundColor:"#ffffff"}}>
在上面,可见道具和覆盖样式之间有空格,删除了相同的空格,错误消失了。
相关文章:
- React中的突变道具
- 警告:失败的propType:类型为“array”的无效prop应为React的“object”
- angular payments返回带有测试数据的无效卡
- 为什么shouldComponentUpdate说当前道具是React中的新道具
- 如果模糊事件的任何一个子项获得焦点,请阻止启动模糊事件
- 由 if / else 语句中的无效语法导致的语法错误
- 未捕获的无效值错误:initMap 不是一个函数
- 反应错误“失败的 propType:提供给”提供者“的无效道具'子项',需要单个 ReactElement'
- React中带有es6类的关键道具
- jquery ajax中的无效返回
- 客户端脚本生成验证的无效HTML
- 是“;论点”;JavaScript中的无效参数名称
- 反应:无法访问父级事件处理程序中的子道具
- 带有 querySelectorAll 的无效选择器 :不带后代
- 通过鼠标向下选择父级中的最后一个子项
- 无法读取空放置区的属性“删除子项”
- Angular NgRoute “/” 有效,但其余的无效
- 反应路由器提供给“路由”的无效道具“组件”
- 警告:失败的道具类型:在“窗格”中未指定所需的道具“子项”.检查“首次时间选项卡”的呈现方法
- 提供者中无效的子道具