【发布时间】:2016-06-17 18:50:35
【问题描述】:
所以我有一个数组chosenIds[],它基本上包含一个ids (numbers) 的列表。但我无法访问减速器中的状态以检查 ID I parsed to my action 是否在数组中。
const initialState = {
'shouldReload': false,
'chosenIds': [],
};
export default function filter(state = initialState, action) {
switch (action.type) {
case ADD_TYPE:
console.log(state.chosenIds, "Returns undefined???!!!");
// Check if NUMBER parsed is in state
let i = state.chosenIds.indexOf(action.chosenId);
//If in state then remove it
if(i) {
state.chosenIds.splice(i, 1);
return {
...state.chosenIds,
...state.chosenIds
}
}
// If number not in state then add it
else {
state.chosenIds.push(action.chosenId)
return { ...state.chosenIds, ...state.chosenIds }
}
我不确定发生了什么...但是当我登录state.chosenIds 时,它返回未定义?它甚至不返回初始的空数组 [] 。
基本上这个函数要做的是检查action.chosenId是否在state.chosenIds中,如果是,则删除action.chosenId值,如果不是,则将action.chosenId添加到国家。
【问题讨论】:
-
这意味着它已经通过了一个状态,但该状态不包含键“chosenIds”。你能告诉我们你是如何调度动作的吗?
-
状态对象的其余部分是什么样的?
标签: arrays reactjs redux reducers