React下reducer中處理數組&&對象的賦值改動


(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())等等方案

   參見文章淺談ES6的Object.assign()淺拷貝.

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM