You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用createEntityAdapter设置initialState初始状态

基于createEntityAdapter设置带固定常量的初始状态方法

createEntityAdapter 实例提供了getInitialState方法用于生成符合规范的初始状态结构,你只需将固定常量数据通过适配器内置的方法写入该状态即可,完整实现代码如下:

import { createSlice, createEntityAdapter } from "@reduxjs/toolkit";

export const cardAdaptor = createEntityAdapter();
// 你的固定常量数据,每条数据需包含唯一标识字段,默认取值为id
const FIXED_CARD_DATA = [
  { id: 1, title: "卡片1", desc: "固定卡片内容1" },
  { id: 2, title: "卡片2", desc: "固定卡片内容2" },
  { id: 3, title: "卡片3", desc: "固定卡片内容3" }
];

// 生成适配器标准初始状态
const initialState = cardAdaptor.getInitialState();
// 将固定常量写入初始状态
cardAdaptor.setAll(initialState, FIXED_CARD_DATA);

const cardSlice = createSlice({
  name: "cards",
  initialState,
  reducers: {}
});
export default cardSlice.reducer;

注意事项

  • 如果你的实体唯一标识不是默认的id字段,创建适配器时需要额外传入selectId配置,示例:
    const cardAdaptor = createEntityAdapter({
      selectId: (card) => card.cardNo // 用cardNo字段作为主键
    });
    
  • 如果需要在状态中添加适配器标准结构(ids、entities)之外的自定义字段,可以传入参数给getInitialState,示例:
    // 新增loading、error两个自定义状态字段
    const initialState = cardAdaptor.getInitialState({
      loading: false,
      error: null
    });
    

内容的提问来源于stack exchange,提问作者ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:18:01