【发布时间】:2019-05-03 23:27:09
【问题描述】:
我见过两种方法: this example,摘自 Dan Abramov 的课程, 他正在使用这种方法:
const render = () => {
ReactDOM.render(
<Counter
value={store.getState()}
onIncrement={() =>
store.dispatch({
type: 'INCREMENT'
})
}
onDecrement={() =>
store.dispatch({
type: 'DECREMENT'
})
}
/>,
document.getElementById('root')
);
};
store.subscribe(render);
Redux 中的 store.subscribe() 函数允许添加侦听器,这些侦听器会在调度操作时被调用。
在这个 other example 中,这是 Redux 文档中的一个示例:
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
不使用 store.subscribe,而是将整个 App 包装在 <Provider> 组件中。
这两种方法有什么区别? 似乎他们在做同样的事情,那就是确保 App 拥有最新版本的状态。
如果我使用 <Provider> 包装了我的应用程序,我可以/应该使用 Store.subscribe 吗?
【问题讨论】:
标签: reactjs redux redux-store