2017-08-30 60 views
1
foodList : { 
    'fruits' : ['apple', 'banana'], 
    'hamburgers: ['bigmac', 'crispy'] 
} 

在以上數據結構的情況下,如何在Redux中添加新的kiwi到水果?如何將新值推向Store對象?

case "FRUIT_ADD_SUCCESS" : 

    action.payload = 'kiwi'; 
    return { 
     ...state, 

     // Cannot read property 'push' of undefined 
     foodList: state.foodList['fruits'].push(action.payload) 

     // Disappear previous values 
     foodList: state.foodList['fruits'] = action.payload 
    } 

如何將新值推送到Store對象?

回答

4

這應該工作:

case 'FRUIT_ADD_SUCCESS': 
    action.payload = 'kiwi'; 

    const newFoodList = { 
    ...state.foodList, 
    fruits: [...state.foodList.fruits, action.payload], 
    }; 

    return { 
    ...state, 
    newFoodList, 
    };