Ngrx:如何将 simpe 存储模式与实体状态结合起来?
Ngrx: how to combine simpe store pattern with entity state?
最近很抱歉,如果它与某人的问题重复。但是我找不到解决问题的方法。
我遇到了一个问题,我想让我的商店状态有点复杂 ngrx/entity 提供的,但我不知道如何正确地做到这一点。
以下是我现在拥有的 reducer 模型:
export interface State extends EntityState<BagParametres> {
SimpleBag: BagParametres;
}
export const adapter: EntityAdapter<BagParametres> = createEntityAdapter<BagParametres>({
selectId: (params: BagParametres) => params.id
});
export const initialState: State = adapter.getInitialState({
SimpleBag: defaultParams,
RareBags: {
ids: [],
entities: []
}
});
那么我期望的商店是什么:
{
SimpleBag: {
//params
},
RareBags: {
ids: [2, 3, 4 //, ...etc],
entities: [
{ id: 2 //, etc params },
{ id: 3 //, etc params },
{ id: 4 //, etc params }
// ... and so on
]
}
}
我要去的商店:
{
SimpleBag: {
id: 1
// etc params
},,
RareBags: {
ids: [],
entities: []
},
ids: [2, 3, 4 //, ...etc],
entities: [
{ id: 2 //, etc params },
{ id: 3 //, etc params },
{ id: 4 //, etc params }
// ... and so on
]
}
如何在 RareBags
中放置 ID 和实体?
你在混淆状态。你想要的是 2 个不同的实体存储。
export interface State {
simpleBag: BagParametres;
rareBag: RareBagState
}
export interface RareBagState extends EntityState<BagParametres> {}
export const rareAdapter: EntityAdapter<BagParametres> = createEntityAdapter<BagParametres>({
selectId: (params: BagParametres) => params.id
});
export const initialState: State = {
simpleBag: defaultParams,
rareBag: rareAdapter.getInitialState({})
};
最近很抱歉,如果它与某人的问题重复。但是我找不到解决问题的方法。
我遇到了一个问题,我想让我的商店状态有点复杂 ngrx/entity 提供的,但我不知道如何正确地做到这一点。
以下是我现在拥有的 reducer 模型:
export interface State extends EntityState<BagParametres> {
SimpleBag: BagParametres;
}
export const adapter: EntityAdapter<BagParametres> = createEntityAdapter<BagParametres>({
selectId: (params: BagParametres) => params.id
});
export const initialState: State = adapter.getInitialState({
SimpleBag: defaultParams,
RareBags: {
ids: [],
entities: []
}
});
那么我期望的商店是什么:
{
SimpleBag: {
//params
},
RareBags: {
ids: [2, 3, 4 //, ...etc],
entities: [
{ id: 2 //, etc params },
{ id: 3 //, etc params },
{ id: 4 //, etc params }
// ... and so on
]
}
}
我要去的商店:
{
SimpleBag: {
id: 1
// etc params
},,
RareBags: {
ids: [],
entities: []
},
ids: [2, 3, 4 //, ...etc],
entities: [
{ id: 2 //, etc params },
{ id: 3 //, etc params },
{ id: 4 //, etc params }
// ... and so on
]
}
如何在 RareBags
中放置 ID 和实体?
你在混淆状态。你想要的是 2 个不同的实体存储。
export interface State {
simpleBag: BagParametres;
rareBag: RareBagState
}
export interface RareBagState extends EntityState<BagParametres> {}
export const rareAdapter: EntityAdapter<BagParametres> = createEntityAdapter<BagParametres>({
selectId: (params: BagParametres) => params.id
});
export const initialState: State = {
simpleBag: defaultParams,
rareBag: rareAdapter.getInitialState({})
};