通常我在Reducer上看到这样的东西:
const initialState = {
thisIsBoolean: false,
};
const handlers = {
[ActionTypes.CARD_SELECTED](state, action) {
return {
...state,
thisIsBoolean: !state.thisIsBoolean,
};
},
};
export default createReducer(initialState, handlers);
操作:
export const booleanExample = () => ({
type: ActionTypes.CARD_SELECTED,
});
但是我现在需要做这样的事情: 减速器:
const initialState = {
stepOneCardSelected: [
{ index: 0, isDone: false },
{ index: 1, isDone: false },
{ index: 2, isDone: false },
{ index: 3, isDone: false },
],
};
const handlers = {
[ActionTypes.CARD_SELECTED](state, action) {
return {
...state,
stepOneCardSelected: action.payload.stepOneCardSelected,
};
},
}
操作:
export const stepOneCardSelectedAction = stepOneCardSelected => ({
type: ActionTypes.CARD_SELECTED,
payload: { stepOneCardSelected },
});
所以我需要做一些事情来返回状态并切换isDone
中的stepOneCardSelected
属性。
我该怎么办?
答案 0 :(得分:1)
您可以在状态下遍历selectedCard
并切换isDone
const initialState = {
stepOneCardSelected: [
{ index: 0, isDone: false },
{ index: 1, isDone: false },
{ index: 2, isDone: false },
{ index: 3, isDone: false },
],
};
const handlers = {
[ActionTypes.CARD_SELECTED](state, action) {
return {
...state,
stepOneCardSelected: state.stepOneCardSelected.map(({index,isDone})=>({index,isDone: !isDone}))
};
},
}