如何在状态上计算属性?

时间:2019-06-07 13:26:13

标签: rxjs ngxs

使用NGXS,我在项目中有状态。我使用服务将某些数据加载到状态中。一切正常。但是,我还需要公开一个属性,该属性从状态的另一个属性获取数据并对其进行转换。我想使用.pipe来确保转换后的数据与实际数据保持同步。我只是不知道将转换逻辑放在哪里。

1 个答案:

答案 0 :(得分:1)

您可以使用save_parms根据状态模型来投影派生的属性,例如:

@Selector

然后在组件中直接使用该选择器:

export interface MyStateModel {
  firstName: string;
  lastName: string;
}

@State<MyStateModel>()
export class MyState {

  // Selector to project derived 'fullName' property of the state.
  @Selector()
  static fullName(state: MyStateModel): string { 
     return state.firstName + ' ' + state.lastName;
  }

  // Load the data 
  @Action(LoadData)
  loadData({patchState}: StateContext<MyStateModel>) { 
     patchState({
       firstName: 'Joe',
       lastName: 'Bloggs',
     }
  }

}