ngrx: установить значение по умолчанию для сущностей
Как я могу установить значение по умолчанию для сущностей при инициации состояния в сущностях ngrx?
potato.model.ts
export class Potato {
id: number;
weight: number;
}
potato.reducer.ts
export interface PotatoState extends EntityState<Potato> { }
export const potatoAdapter: EntityAdapter<Potato> = createEntityAdapter<Potato>();
const potatoesInitialState: PotatoState = potatoAdapter.getInitialState();
export const initialState: State = {
potatoes: potatoesInitialState
};
export function reducer(state = initialState, action: PotatoActions): State {
switch (action.type) {
// ...
}
}
Например мне нужно установить значение по умолчанию 0,2.
2 ответа
Решение
Я бы предложил вам использовать конструктор по умолчанию для этого:
export class Potato {
id: number;
weight: number;
constructor() {
weight = 0.2;
}
}
Вы не должны добавлять классы в хранилище, чтобы поддерживать его сериализацию, хорошо, ваша картошка есть, но заманчиво добавить туда функции, которые существуют, а потом их больше нет.
Я бы использовал фабричную функцию для создания картофеля вместо этого.
interface Potato {
id: number;
weight: number;
}
const createPotato = (potato: Potato = { id: undefined, weight: 0.2 }) => potato;
console.log(createPotato());
console.log(createPotato({id: 20, weight: 300}));