我有我的初始狀態:添加對象初始狀態減速
export default function DrinkCalculator(state = initialState, action) {
let payload = action.payload;
switch (action.type) {
case UPDATE_DRINKS_CALCULATOR:
return [{
...state,
...payload
}];
case ADD_DRINK:
let newState= [Object.assign({},state)];
newState.push(action.payload);
return newState;
我如何添加到我的數組來保存對象的數組?我怎麼會需要改變我的reducer來添加一個對象到一個數組,所以我可以存儲大量的條目,而不僅僅是一個。
我想我的狀態是:
[{
drinkType: 5,
drinkVolume: 4,
drinkStrength: 5,
drinkQuantity: 5,
drinkStength: 5
},
{
drinkType: 1,
drinkVolume: 2,
drinkStrength: 2,
drinkQuantity: 5,
drinkStength: 7
},
{
drinkType: 3,
drinkVolume: 5,
drinkStrength: 2,
drinkQuantity: 5,
drinkStength: 5
},
{
drinkType: 5,
drinkVolume: 5,
drinkStrength: 5,
drinkQuantity: 5,
drinkStength: 5
}
]
更新:我正在複製到我的狀態嵌套的對象,我想獲得頂級性能,並將其添加爲對象的數組。
當我火了這裏的行動:
onClick() {
const drinkQuantity = this.state.counter;
const drinks = this.props.DrinksCalculator;
if (!drinkQuantity) {
this.props.dispatch(showError());
} else {
this.props.dispatch(updateDrinksCalculator({drinkQuantity}));
// fire addDrink to copy drinks props in new object
this.props.dispatch(addDrink(drinks));
this.props.router.push('/calc/5');
}
}
的'initialState'不應該改變,如果需要不同的結構,那麼通過默認或用途變化'initialState'到陣列結構一個不同的減速器。 – Purgatory
我的意思是默認情況下,更新後的問題 – Bomber
'action.payload'的值是'[{1:2,1:2},{1:2,1:2,},{1:2,1:2 },{1:2,1:2}]'?如果是這樣,那麼你應該'返回[...狀態,... action.payload]' – Purgatory