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">&#xe50a;</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 上下文值

useDispatch() 错误:找不到 react-redux 上下文值;请确保组件包装在 <Provider>

找不到 react-redux 上下文值;请确保组件包含在 <Provider> 中,即使它已经包含在提供者中