如何使用ngrx向初始状态的实体添加项

如何使用ngrx向初始状态的实体添加项,ngrx,ngrx-store,ngrx-entity,Ngrx,Ngrx Store,Ngrx Entity,我正在使用实体,而不是在开始时有空的实体,我想在初始状态下添加一个默认项。我尝试了以下方法: const id = uuidv4() const zeroState = adapter.getInitialState({ activeTabId: id, }); const homeTab = { pageID: id, pageTitle: 'Home', } as PageInfo; export const initialState = adapter.addOne(ho

我正在使用实体,而不是在开始时有空的实体,我想在初始状态下添加一个默认项。我尝试了以下方法:

const id = uuidv4()

const zeroState = adapter.getInitialState({
  activeTabId: id,
});

const homeTab = {
  pageID: id,
  pageTitle: 'Home',
} as PageInfo;

export const initialState = adapter.addOne(homeTab, zeroState);
它在开发环境中运行良好,并且
ng build--prod=true
也可以正常构建。但是当我部署应用程序时,它不会运行/加载任何东西,而是抛出
Uncaught错误:平台安装后无法启用prod模式..


有人能告诉我如何将项目添加到初始实体状态吗?

不幸的是adapter.addOne不能这么早工作。但还有一些选择

您可以手动注入实体,实体的存储结构非常简单:

const-id:any=uuidv4();//因为类型转换而导致的任何错误。
const zeroState=adapter.getInitialState({
activeTabId:id,
});
导出常量初始状态={
…零状态,
ID:[
…zeroState.ids,
身份证件
],
实体:{
…零状态实体,
[id]:{
pageID:id,
页面标题:“主页”,
},
},
};
或者你可以使用一种效果,它在prod模式下工作

@Injectable()
导出类实体效果{
@效果()
公共只读数据$=此.actions$.pipe(
类型(根效应初始值),
切换映射到(
合并(
的(
新地址({
地址:{
id:'地址1',
名称:“地址1”,
},
}),
//更多实体
新用户({
用户:{
id:'user5',
名称:“用户5”,
companyId:“company3”,
},
}),
新用户({
用户:{
id:'user6',
名称:“用户6”,
companyId:“company3”,
managerId:'user5',
},
}),
),
),
),
);
构造函数(受保护的只读操作$:操作){}
}
然后在AppModule中

@NgModule({
进口:[
EffectsModule.forRoot([EntitiesEffects]),
],
})
导出类AppModule{}
使用适配器的方法:

const initialState=adapter.setAll([homeTab],zeroState);

(其中,
homeTab
是一个实体,
zeroState
adapter.getInitialState
的返回值)

我错过了这个答案的通知,但当一个成员在gitter聊天中指向这个资源时,我实现了它