React-redux使用中有关Provider问题
Posted 好好学习,天天向上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-redux使用中有关Provider问题相关的知识,希望对你有一定的参考价值。
先上错误:
Warning: Failed prop type: Invalid prop `children` of type `array` supplied to `Provider`, expected a single ReactElement. in Provider (at index.js:8)
React.Children.only expected to receive a single React element child.
代码:index.js
import React from ‘react‘; import ReactDOM from ‘react-dom‘; import {Provider} from ‘react-redux‘ import store from ‘./redux/Store‘ import App from ‘./self-component/Router‘ ReactDOM.render(<Provider store={store} > <App /> </Provider> ,document.getElementById(‘root‘))
原因:
原因是吧Provider放错地方了。应该放在路由表的根路由的位置。这样每次数据修改后,就会从根路由开始重新渲染其他组件
改正:
就是在要 return 的最外层包一层 <Provider>...</Provider> main.js
import React,{Component} from ‘react‘ import {Link, IndexLink, hashHistory} from ‘react-router‘ import {Provider} from ‘react-redux‘ import ‘../styles/common.css‘ import ‘../styles/main/main.css‘ class Main extends Component{ render(){ return( <Provider> <div className="main"> <div className=‘component‘> {this.props.children} </div> <div className=‘foot‘> <div className=‘foot-block‘> <IndexLink to=‘/‘ activeClassName=‘active‘> <dl className="homePage"> <dt className="iconfont"></dt> <dd>首页</dd> </dl> </IndexLink> </div> </div> </div> </Provider> ) } } export default Main
以上是关于React-redux使用中有关Provider问题的主要内容,如果未能解决你的问题,请参考以下文章
P20:Redux进阶-React-redux中的Provider和connect
React-redux mapStateToProps,mapDispatchToProps 如何使用
将酶.mount().setProps 与 react-redux Provider 一起使用
组件包装在 Provider 中,但出现此消息:找不到 react-redux 上下文值