微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

combineReducers 无法正常工作任何人都可以看到问题吗?

如何解决combineReducers 无法正常工作任何人都可以看到问题吗?

我的应用中有两个不同的减速器 => nodesReducercontrolsReducer

如果我一次将它们传递到商店,它们工作得很好,但是每当我使用 combineReducers,它们就会停止工作 => 因为我从 state 中提取的所有东西都变成了 undefined 在我的组件中,但一切仍然在工具包扩展中看起来很正常。

这是代码

这完全没问题(单个减速器直接放在那里):

import { configureStore } from "@reduxjs/toolkit";

import nodesReducer from "./Node";

const store = configureStore({
  reducer: nodesReducer,middleware: [],});

export default store;

当我用 combineReducers 再添加一个 reducer 时,这个就不起作用了:

import { configureStore } from "@reduxjs/toolkit";
import { combineReducers } from "redux";

import nodesReducer from "./Node";
import controlsReducer from "./Controls";

const rootReducer = combineReducers({
  nodesReducer,controlsReducer,});

const store = configureStore({
  reducer: rootReducer,});

export default store;

谁能看出哪里出了问题?

解决方法

这里有一些有根据的猜测,但您提供的内容似乎没有明显错误,因此鉴于您更改了减速器代码,我想这是因为通过组合减速器,您的状态将从:

{
   ...stuffFromNodesReducer
}

进入

{
    nodesReducer: ...stuffFromNodesReducer,controlsReducer: ...stuffFromControlsReducer
}

您应该能够使用 redux devtools 检查您的 redux 状态以检查它的外观。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。