我正在尝试嵌套我的缩减器来提供这种结构:
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
。但是,filter
是undefined
。它甚至不存在于dataSetOne
对象上。
我必须误解combineReducers
如何运作,但我无法弄清楚为什么这不起作用。
答案 0 :(得分:0)
好的,我终于明白了!我使用redux-persist
与localforage
一起使我的商店在刷新时保持不变。显然,这在某种程度上导致了这个问题。我清除了localforage
数据库,一切都按预期工作。
我仍然不能完全理解combineReducers
的工作原理,因为我可以将简单的function
添加到我的Reducer中,而无需清除存储空间。
如果有人能够解释这种行为,我会将其标记为答案。