直接在 component中引用store
onFormSubmit(e) {
e.preventDefault();
store.dispatch(addTodo(this.state.message));
}
这样写,是不是也可以?
直接在 component中引用store
onFormSubmit(e) {
e.preventDefault();
store.dispatch(addTodo(this.state.message));
}
这样写,是不是也可以?
这样写当然是可以了,不过你的
store
从哪儿来?看你的意思你是打算把store
暴露到全局咯?就像window.store = createStore(initialState)
这样子?Provider
是 react-redux 库提供的,redux 本身并不强制依赖它,然而问题是 redux 本身也不依赖 react。作为一个纯粹的 data layer,redux 并不关心你用什么视图引擎,所以如何访问store
是你自己需要考虑的事情,redux 并不会约束你一定要怎么做。react-redux 是官方提供的解决方案,
Provider
本身并没有做很多事情,只是把store
放在context
里罢了。实际上如果你用 react-redux,那么连接视图和数据层最好的办法是使用connect
函数。本质上Provider
就是给connect
提供store
用的。认真读一遍 react-redux 的文档吧,并不长且最后演示了多种最佳实践。