我已经看到了这两种方法:在这个例子中,取自 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() 函数允许添加在调度操作时调用的侦听器。
在另一个示例中,这是来自 Redux 文档的示例:
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
不使用 store.subscribe ,而是将整个 App 包装在一个<Provider>
组件中。
这两种方法有什么区别?似乎他们在做同样的事情,那就是确保 App 具有最新版本的状态。
如果我用 包装了我的应用程序,我可以/应该使用 Store.subscribe<Provider>
吗?