[英]How can I add additional items to a store array and still be able to set the array to empty when resetting?
我已经设置了一个带有 player 数组的 Store.js。 我想将玩家添加到数组中,因为我是 select 他们,但如果我清除数组,仍然可以将数组设置为空。
这是我的 Store.js 中的一些代码
const initialState = {
playerCollection: [],
}
const reducer = (state, action) => {
switch (action.type) {
case 'UPDATE_PLAYER_COLLECTION':
return { ...state, playerCollection: action.value };
default:
return state;
}
}
这是我的 Players.js 中的一些代码
for(let i=0; i<players.length; i++){
let player = players[i];
if(player.position === state.posAbbr && player.status === 'ACT'){
let newPlayer = createNewPlayer(roster, player);
dispatch({ type: 'UPDATE_PLAYER_COLLECTION', value: [...state.playerCollection, newPlayer] });
return;
}
}
我的调度线只是将一个玩家添加到 playerCollection 数组中。 就像我上面所说的,我还希望能够将数组设置为 [] 如果我清除它。
定义一个明确的 playerCollection 动作,并在 reducer 中为该动作设置数组为空:
const reducer = (state, action) => {
switch (action.type) {
case 'UPDATE_PLAYER_COLLECTION':
return { ...state, playerCollection: action.value };
case 'CLEAR_PLAYERS':
return {...state,playerCollection: []};
case "ADD_PLAYER" :
return {...state,playerCollection : [...state.playerCollection,action.value]}
default:
return state;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.