gpt4 book ai didi

javascript - 嵌套的 combineReducers 产生未定义的值

转载 作者:行者123 更新时间:2023-12-01 17:34:50 24 4
gpt4 key购买 nike

我试图嵌套我的 reducer 以提供这种结构:

state: {
data: {
dataSetOne: {
items: [],
filter: {
query: "",
includeInactive: false
}
}
}
}

我的文件结构是:

--reducers
|__index.js
|__data
|__dataSetOne.js

index.js 中,我导入 dataSetOne.js 并导出 combineReducers({ dataSetOne })。这很好用。但是,在 dataSetOne.js 中,我似乎无法嵌套 filter。我有什么:

import { combineReducers } from "redux";

function items (state = [], action) {
...
}

function query (state = "", action) {
...
}

function includeInactive (state = false, action) {
...
}

export default combineReducers({
filter: combineReducers({
includeInactive,
query
}),
items
});

部分作品;我可以毫无问题地访问 state.data.dataSetOne.items。然而,filterundefined。它甚至不存在于 dataSetOne 对象上。

我一定是误解了 combineReducers 的工作原理,但我不明白为什么这不起作用。

最佳答案

好吧,我终于明白了!我将 redux-persistlocalforage 一起使用,以在刷新时保留我的商店。显然,这在某种程度上导致了这个问题。我清除了 localforage 数据库,一切都按预期工作。

不过,我仍然不能完全理解 combineReducers 的工作原理,因为我可以将简单的 function 添加到我的 reducer 中,而无需清除存储空间。

如果有人能解释这种行为,我会将其标记为答案。

关于javascript - 嵌套的 combineReducers 产生未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45861560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com