javascript - 在异步函数中执行 createStore 时未定义存储?

标签 javascript reactjs redux

在 redux store 中,是否可以将不同的 reducer 集加载到一个 store 中?我的尝试失败了

import userReducers from './reducers'
import adminReducers from './reducers/admin'

//share reducer btw member and admin
let store
getUserRole().then(role => {
   reducers =  role === 'member'
   ? userReducers
   : adminReducers
   console.log('reducers', reducers) 
   store =  createStore(
       reducers,
       composeWithDevTools(
           applyMiddleware(thunk)
       )
   )
})

export default store

我还制作了一个模型来演示这个问题。

https://codesandbox.io/s/n5r445nnom

最佳答案

仔细阅读这个答案

Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference

所以基本上 then 函数中的代码在 undefined store 被导出并在其他文件中使用之后运行

要检查这一点,您还可以在设置商店后添加一个控制台。登录然后运行

关于javascript - 在异步函数中执行 createStore 时未定义存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51800319/

相关文章:

javascript - 使用谷歌翻译为 React js 制作站点多语言支持

javascript - Redux - 将项目添加到数组时连接新状态时出现问题

javascript - 当 redux 状态改变时,功能组件不会重新渲染

javascript - 如何定义笔画的颜色

javascript - 在 Controller 的 div 中显示图像?

javascript - 将项目添加到 ReactJs 状态的数组中,并设置超时以进行 self 删除

javascript - 使用 Click Outside Hook 时如何防止将事件监听器多次分配给元素?

javascript - 如何根据 Redux 存储上的属性显示/隐藏组件?

javascript - 音频文件数组

javascript - AngularJS ng-repeat 如果不是对象则隐藏重复项