鍍金池/ 問答/HTML/ redux的reducer返回的state多嵌套了一層state

redux的reducer返回的state多嵌套了一層state

如圖所示:我在這兩個(gè)地方打印,沒做任何處理,結(jié)果卻完全不一樣,這也導(dǎo)致了redux的狀態(tài)樹被無緣無故嵌套了一層

clipboard.png

回答
編輯回答
笨尐豬

default返回的。

就相當(dāng)于:

return {state: state}

不是就多了一層么

2018年9月19日 22:06
編輯回答
孤慣

謝邀!
原因是您本身就多包裝了一層{}!我這邊大致寫一個(gè)示例供您參考:

import { fromJS } from 'immutable';
import { LOADING } from '../Constants/DispatchTypes';

// 初始化state數(shù)據(jù)
const initialState = {
    loading: false
};

/**
 * 公共reducer
 * @return
 */
const Common = (state = initialState, action) => {
    switch(action.type) {
        case LOADING: // 用于頁面和區(qū)塊的加載中狀態(tài)
            return fromJS(state).merge({loading: action.loading}).toJS();
        default:
            return state;
    }
}

export { Common };

不過我這邊引入了數(shù)據(jù)處理庫 immutable.js!您也可以直接使用Object.freeze 或 Object. assign。

2018年3月20日 13:27