即使我看到状态正在更新,我也遇到了反应组件没有重新渲染的问题。我正在使用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;
}
}
答案 0 :(得分:1)
在Object.assign
中,第一个参数是" target"对象,
所以这一行
group_by(names(.)[1])
仍在改变州的currentScanResult: Object.assign(state.currentScanResult, payload)
属性。
在currentScanResult
中使用空对象作为第一个参数,就像在第一级一样,所以整个事情变成:
Object.assign
这应该至少测试问题是否是突变问题,或者是否还有其他需要修复的问题。