0
我是新來反應/ redux,我試圖將我的一個對象以redux狀態存儲爲Map/Hash,其中的鍵是來自db和對象的主鍵作爲對象本身。然而,每次我更新時,狀態似乎都會變得過度,我添加的新值是唯一剩下的值。這裏是我的代碼:react/redux嵌套狀態問題
import { RECEIVE_CURRENT_SCAN_RESULT } from '../constants';
const initialState = {
currentScanResult: {info:{}, results:[]},
};
export default createReducer(initialState, {
[RECEIVE_CURRENT_SCAN_RESULT]: (state, payload) =>
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;
}
}
我想只是掠過我的對象:
{id: 1, thing: "blue"}
,並已在國家與它進行更新。然後,如果我通過在:
{id: 2, thing: "red"}
我想我的終極版狀態,以反映:
currentScanResult: {1: {id: 1, thing: "blue"}, 2: {id: 2, thing: "red"}}
有我的任何簡單的方法來做到這一點?如果我正在更新嵌套值,會重新渲染嗎?例如,如果我通過:
{id: 2, thing: "purple"}
=> currentScanResult: {1: {id: 1, thing: "blue"}, 2: {id: 2, thing: "purple"}}
我希望看到類似這樣的行爲。我查看了Immutable JS,我只是想知道如果沒有它,這個簡單的用例是否可以工作?
任何幫助表示讚賞!謝謝!
謝謝!你知道狀態是否會像這樣嵌套更新嗎?有什麼缺點? – BC00
沒有問題。數據嵌套越多,更新內部結構就越乏味。有關更多詳細信息,請參閱這些文檔:http://redux.js.org/docs/recipes/reducers/ImmutableUpdatePatterns.html – JulienD
是這種變異狀態,由於某種原因,當嵌套值更新時,我的組件不會重新呈現。 .. – BC00