Redux-如何访问商店“;“派遣”;在提供给提供商之后?
我有以下文件: index.jsRedux-如何访问商店“;“派遣”;在提供给提供商之后?,redux,Redux,我有以下文件: index.js const store = createStore(...) ReactDOM.render(<Provider store={store}><BrowserRouter><App/></BrowserRouter></Provider>, document.getElementById('root')); 那么,我如何访问store.dispatch主组件内部? 如果我尝试通过store.dispa
const store = createStore(...)
ReactDOM.render(<Provider store={store}><BrowserRouter><App/></BrowserRouter></Provider>, document.getElementById('root'));
那么,我如何访问store.dispatch
主组件内部?
如果我尝试通过store.dispatch({…})
执行此操作,我会得到:
未定义“存储”无未定义
调度功能应通过此.props提供
this.props.dispatch()您的组件不应该直接访问存储-connect
将其抽象化
有关如何处理分派操作的完整说明,请参见上的新React Redux docs页面。如果mapDispatchToProps看起来像:
const mapDispatchToProps = dispatch => ({
myAction1: () => dispatch(myAction1())
});
connect(mapStateToProps, mapDispatchToProps)(Main)
…然后在组件中,可以调用this.props.myAction1()
如果mapDispatchToProps使用:
…然后在组件中,可以调用this.props.myAction1()
和this.props.myAction2()
如果mapDispatchToProps未定义:
connect(mapStateToProps)(Main)
然后在组件中,您可以访问this.props.dispatch
MymapDispatchToProps
如下所示:函数mapDispatchToProps(dispatch){return bindActionCreators(actions,dispatch)}
那么我该如何访问它呢?bindActionCreators
创建与您传入的动作同名的道具。见编辑后的答案
const actions = { myAction1, myAction2 };
const mapDispatchToProps = dispatch => bindActionCreators(actions, dispatch);
connect(mapStateToProps)(Main)