【发布时间】:2021-12-28 05:39:52
【问题描述】:
我使用 redux 来创建切片,这是我的 createSlice 的样子:
export default createSlice({
name:'testSlice',
initialState,
reducers:{
setRecords: setRecordsReducer,
setObjects: setObjectsReducer,
setBoth:....
}
});
这里是 setRecordsReducer 和 setObjectsReducer 的样子:
const setRecordsReducer = (state, {payload:{id,recordName}}) => {
return {...state, items:{...state.items, records:{...state.items.records, [id]:{recordName}};
};
const setObjectsReducer = (state, {payload:{id,objectName}}) => {
return {...state, objects:{...state.objects, records:{...state.objects.records, [id]:{objectName}};
};
setRecordReducer 和 setObjectsReducer 这两个reducer改变了状态的不同部分(实际上并不是改变状态,而是基于它构建新的状态)。 setRecordReducer 根据 state.items.records 返回新状态; setObjectReducer 根据 state.objects.records 返回新状态。
我试图创建一个新的动作 setBoth,当动作 setBoth 发生时,我可以同时调用 setRecordReducer 和 setObjectsReducer 吗?那么状态的两个部分可以改变并返回我新的状态吗?
【问题讨论】:
-
要么状态更新依赖于先发生的另一个更新,还是这些真正独立的状态“块”?
-
它们是真正独立的状态块。没有依赖。 @DrewReese
标签: reactjs redux react-redux redux-toolkit redux-reducers