(1)數組
reducer中處理數組數據的賦值
我初始化了一個字段data = [],在發起請求成功后,要將返回的list賦值給data, 這時候就有一個問題了, 因為我們都是通過Object.assign這種形式進行賦值的, 那么究竟我們要怎么將得到的數組賦給data呢?接下來我們就以具體的代碼來看:
const initialState = { data: [] } export default function testFn(state = initialState, action){ switch(action.type){ case 'receive_data': let listData = [...action.payload,...state.data]; return Object.assign({}, state, { data: listData }) } }
好了, 如上所示, 主要利用es6的解構,從而將值賦值給listData
(2)對象淺拷貝Object.assign()
傳入Object.assign()
方法實現該需求(正確的方式)
Object.assign({}, this.state.detail, { key: data })
針對該場景也可以采用深拷貝原對象,修改對應屬性后,重新賦值給state中的原對象。
該方法在以上方法無法解決問題的前提下應用。
其他方案,可以利用JSON.parse(JSON.stringify())等等方案
.