redux - Redux - 提供 Provider 后如何访问商店“dispatch”?
问题描述
我有以下文件:
index.js
const store = createStore(...)
ReactDOM.render(<Provider store={store}><BrowserRouter><App/></BrowserRouter></Provider>, document.getElementById('root'));
App
组件:(App.js )
const App = withRouter(connect(mapStateToProps, mapDispatchToProps)(Main))
export default App
那么我如何访问组件store.dispatch
内部Main
呢?如果我尝试这样做,store.dispatch({...})
我会得到:
'store' 未定义 no-undef
解决方案
如果 mapDispatchToProps 看起来像:
const mapDispatchToProps = dispatch => ({
myAction1: () => dispatch(myAction1())
});
connect(mapStateToProps, mapDispatchToProps)(Main)
...然后在组件中,您可以调用this.props.myAction1()
如果 mapDispatchToProps 使用bindActionCreators:
const actions = { myAction1, myAction2 };
const mapDispatchToProps = dispatch => bindActionCreators(actions, dispatch);
...然后在组件中,您可以调用this.props.myAction1()
和this.props.myAction2()
如果 mapDispatchToProps 未定义:
connect(mapStateToProps)(Main)
然后在组件中,您可以访问 this.props.dispatch
推荐阅读
- r - 在闪亮的应用程序中动态导出(保存)传单地图
- mysql - phpmyadmin 错误“处理请求时出错”
- ruby-on-rails - Ruby/Rails:有没有办法确定代码库中的哪些方法在 X 天内没有被调用?
- r - 用于从面板数据集中删除不具有规则间隔的观察值的 R 函数
- browser - 如何从 Web 浏览器执行 windows 命令?
- python - Python中的while循环用于多个条件
- javascript - 刷新Django html 模板中的元素
- python - iIfix Import "yfinance" 怎么解决不了
- node.js - HapiJS 用户会话管理
- ios - 如何向 UIAlert 添加功能