将索引对象添加到 Redux 存储(Redux Toolkit)的最佳方法是啥?
Posted
技术标签:
【中文标题】将索引对象添加到 Redux 存储(Redux Toolkit)的最佳方法是啥?【英文标题】:What's the best way to add an indexed object to a Redux store (Redux Toolkit)?将索引对象添加到 Redux 存储(Redux Toolkit)的最佳方法是什么? 【发布时间】:2021-04-02 04:45:47 【问题描述】:到目前为止,我一直将所有内容存储在数组中,但是在遇到this StachOverflow question about keyed object indexes 以及遍历数组如何导致性能损失之后,我想转向将内容存储为对象。但是我不太明白语法。
这个 reducer 是用来创建索引对象的,但它似乎不起作用。 如何修复它以生成以下所需的对象形状?
type MsgPayload =
type: string;
msgKey?: string;
index?: number;
;
type IndexedMsgPayload =
[key: number]: MsgPayload;
;
const messengerSlice = createSlice(
name: "messages",
initialState,
reducers:
emitMessage: (state, action: PayloadAction<MsgPayload | any>) =>
state.total++;
const indexedObj: IndexedMsgPayload =
0:
...action.payload,
,
;
action.payload[state.total] = indexedObj[0];
state.messages = ...state.messages, ...action.payload[state.total] ;
,
,
);
我想实现这样的目标:
1:
type: 'type',
msgKey: 'alert'
,
【问题讨论】:
【参考方案1】:Redux Toolkit 已经有一个 createEntityAdapter
API 可以为您定义和更新规范化的状态结构:
【讨论】:
太好了,我想这正是我想要的。谢谢以上是关于将索引对象添加到 Redux 存储(Redux Toolkit)的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何将堆栈跟踪添加到我当前的 Redux Devtools 设置中?