如何在 redux 选择器和 return 中创建新对象

How to create new object in redux selector and return it

有没有办法,如何在 redux 选择器和 return 中创建新对象?我在网上搜索,但没有找到答案。

像这样:

export interface UserModel {
    user: string,
    job: string,
    contact: string,
    sex: string //not saved in store model
}

 export const mySelector= createSelector(
    moduleState,
    state => {
       state.user,
       state.job,
       state.contact
       } as Partial<UserModel> //casting not possible
  );

store$.select(Selectors.mySelector).subscribe(partialUser => { //partialUser is void
    cons sex = 'M';
    const user = {...partialUser, ...sex} as UserModel //spread operator possible only for objects
    }

如果选择器中没有这个选项,如何从状态属性创建对象并订阅它们?我的商店状态模型是从 BE DTO 创建的,所以我不需要做映射,当从 BE 获取数据时,但是对于 FE UI 模型,我需要创建从商店状态的接口派生的对象,我想要避免手动输入和映射。 (存储状态对象中的属性名称与接口匹配)。也许可以使用 keyof 和 Partial.

您在尝试中犯了错误:

  1. 如果你有 returns 对象的箭头函数,它需要放在圆括号中
export const mySelector= createSelector(
  moduleState,
  state => ({
    user: state.user,
    job: state.job,
    contact: state.contact
  } as Partial<UserModel>)
);
  1. 您想传播字符串而不是仅仅将 sex 字段添加到 partialUser
store$.select(Selectors.mySelector).subscribe(partialUser => {
  //partialUser is void
  cons sex = 'M';
  const user = { ...partialUser, sex } as UserModel;
}