本來你可以直接改寫原本的數組,比如利用這個方法:arr.push(item)
。
但在Redux裡面不可以這樣寫,因為會改寫原本數組,違反了immutable的原則。
因此,要這樣寫: arr: [...state.arr, action.newItem]
。
例子:123456789101112131415161718import { ADD_ITEM } from '../Actions/UserActions'const initialUserState = { arr: []}export default function userState(state = initialUserState, action) { console.log(arr); switch (action.type) { case ADD_ITEM: return { ...state, arr: [...state.arr, action.newItem] } default: return state; }}
另外,你也可以利用concat()
方法。