React / Redux组件无法重新渲染

时间:2017-09-26 21:58:28

标签: javascript reactjs redux react-redux state

即使我看到状态正在更新,我也遇到了反应组件没有重新渲染的问题。我正在使用redux,我已经阅读状态突变通常是问题/原因我只是不认为我这样做。我正在更新的值嵌套在状态中的3个级别。

以下是代码:

import { RECEIVE_CURRENT_SCAN_RESULT } from '../constants';

const initialState = {
    currentScanResult: {info:{}, results:[]},
};

[RECEIVE_CURRENT_SCAN_RESULT]: (state, payload) =>
    Object.assign({}, state, {
      currentScanResult: Object.assign(state.currentScanResult, payload)
    }),

export function createReducer(initialState, reducerMap) {
    return (state = initialState, action) => {
        const reducer = reducerMap[action.type];

        return reducer
            ? reducer(state, action.payload)
            : state;
    }
}

1 个答案:

答案 0 :(得分:1)

Object.assign中,第一个参数是" target"对象,

所以这一行

group_by(names(.)[1])

仍在改变州的currentScanResult: Object.assign(state.currentScanResult, payload) 属性。

currentScanResult中使用空对象作为第一个参数,就像在第一级一样,所以整个事情变成:

Object.assign

这应该至少测试问题是否是突变问题,或者是否还有其他需要修复的问题。