通过Provider向子孙组件传递store

Provider

Provider也是一个普通的组件,其具体介绍可见 官方文档知乎Provider

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


//<App />
<div>
    <Business />
    <Stock />
    <Common />
</div>

上面代码通过Provider向组件<App />中传递store, 这里要注意,Provider不仅向<App />传递store,而且也向<App />的子孙组件传递, 所以只要一个组件的祖先是<App />,那这个组件就可以拿到store

如果一个组件的祖先被Provider包裹并传入store,那么这个组件就可以用connect将组件与Redux.store绑定,如果connect函数传入了第一个参数mapStateToProps,则组件可以根据该参数选择要传入组件的属性值。

使用中注意事项

如果在<App />及其子孙组件中,通过appendChild添加新的节点,则该节点的祖先虽然也是<App />,但是其无法拿到store,挂载在该节点上的组件也无法使用connect注入props.