Reactjs Redux存储更新问题
使用redux store更新对象时遇到问题,当我更新对象时,它会删除其他参数 在下面的示例中,更新参数对象时,id和title参数将被删除Reactjs Redux存储更新问题,reactjs,redux,Reactjs,Redux,使用redux store更新对象时遇到问题,当我更新对象时,它会删除其他参数 在下面的示例中,更新参数对象时,id和title参数将被删除 const initialState = { users: { 'user-0': { id: 'user-0', title: 'John', parametersObject: null }, .... } ... ReducerR
const initialState = {
users: {
'user-0': {
id: 'user-0',
title: 'John',
parametersObject: null
},
....
}
...
ReducerRegistry.register('features/base/users', (state = initialState, action) => {
switch (action.type) {
case UPDATE_PARAMETERS_OBJECT:
return {
...state,
users: {
...state.users,
[action.id]: {
...state.users[action.id],
parametersObject: action.parametersObject
}
}
};
....
}
我错过什么了吗?
我正在使用react 16.9和redux 4.0.4您应该检查这部分[action.id]:{…state.users[action.id]
使用控制台检查您得到的值。老实说,我不知道代码出了什么问题。我会尝试以下方法作为我的最佳尝试:
import _ from 'lodash'
case UPDATE_PARAMETERS_OBJECT:
const tempState = _.cloneDeep(state)
tempState.users[action.id] = {...tempState.users[action.id], parametersObject: action.parametersObject}
return tempState
代码的这一部分似乎是正确的。您能否对代码做更多的说明,特别是如何将状态传递给运行switch语句的函数?可能太明显了。但是:“)id
id
?它只是id(12
)还是您需要的键(user-12
)?如果是前者,您需要[user>-${action.id}
]:…在状态中设置用户数据。-sinan我更新了代码-wrdevos,它是'user'12',我使用这种状态来运行react-beatiful-dnd1)。在UPDATE_PARAMETERS_OBJECT
块中添加console.log或调试器,并检查action.id
是什么,以及状态是什么。用户[action.id]
return.2)。我建议使用redux toolkit来简化还原程序的开发。另外,尝试将{…state.users[action.id],parametersObject:action.parametersObject}保存在单独的常量中,并检查它