Redux-如何访问商店“;“派遣”;在提供给提供商之后?

Redux-如何访问商店“;“派遣”;在提供给提供商之后?,redux,Redux,我有以下文件: index.js const store = createStore(...) ReactDOM.render(<Provider store={store}><BrowserRouter><App/></BrowserRouter></Provider>, document.getElementById('root')); 那么,我如何访问store.dispatch主组件内部? 如果我尝试通过store.dispa

我有以下文件:

index.js

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

My
mapDispatchToProps
如下所示:
函数mapDispatchToProps(dispatch){return bindActionCreators(actions,dispatch)}
那么我该如何访问它呢?
bindActionCreators
创建与您传入的动作同名的道具。见编辑后的答案
const actions = { myAction1, myAction2 };

const mapDispatchToProps = dispatch => bindActionCreators(actions, dispatch);
connect(mapStateToProps)(Main)