store的初始状态为:
let initialState = {
items: [],
itemsCount: 0,
completedCount: 0
};
当我用该类型调度一个动作时,ADD_ITEM
新项目被添加到items
数组中并itemsCount
递增(虽然我不确定我是否正确地做)
case "ADD_ITEM": {
return {
...state,
items: [
...state.items,
{
title: action.name,
dateCreated: action.date,
id: action.id,
isChecked: false
}
],
itemsCount: state.items.length + 1
};
}
并为 TOGGLE_ITEM
case "TOGGLE_ITEM": {
return Object.assign({}, state, {
items: state.items.map(item => {
if (item.id !== action.id) {
return item;
}
return Object.assign({}, item, {
isChecked: !item.isChecked
});
})
});
}
当我分派具有REMOVE_ITEM
以下类型的操作时,将执行以下操作:
case "REMOVE_ITEM": {
return Object.assign({}, state, {
items: [...state.items.filter(item => item.id !== action.id)],
itemsCount: state.items.length - 1
});
}
现在,我想算有项isChecked
就是true
state.items.map(item => {
if(item.isChecked){
//Increment count
}
})
我不确定到底在哪里做。
里面的TOGGLE_ITEM
动作?
里面有新COUNT_ITEM
动作?如果是这样,该操作何时发出?
以及如何为状态的一部分分配一个递增的数字?