【发布时间】:2016-06-22 06:08:09
【问题描述】:
我一直在关注 ReduxJS 文档:Usage with React
在文档末尾提到了提供程序对象的用法,我将我的 App 组件包装在提供程序中,如下所示:
import React from 'react'
import ReactDOM from 'react-dom'
import { createStore } from 'redux'
import { Provider } from 'react-redux'
import RootReducer from './app/reducers'
import App from './app/app'
const store = createStore(RootReducer)
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
但是,这就是文档结束的地方。如何在组件中提取提供商提供的商店?
【问题讨论】:
-
它向您展示了如何将组件连接到本教程前面的商店 - 查看标记为“容器组件”的部分。
-
@JoeClay 所以你还需要使用connect吗?
-
connect是最好/最可靠的方法,除非您有充分的理由降低级别(指南提到connect具有额外的性能优化)。也就是说,如果您真的想直接访问商店,Provider会这样做,因此所有子组件都可以通过上下文进行操作 - 组件内的this.context.store应该返回此实例。 -
我会写一个格式更好的版本作为答案,并附上一些例子。
-
@JacobMason 如果不将根组件包装在
<Provider>中,您将无法使用connect()。
标签: javascript reactjs redux