我有我的初始状态:添加对象初始状态减速
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