rxjs - 如何计算状态属性?
问题描述
使用 NGXS,我的项目中有状态。我使用服务将一些数据加载到状态中。一切正常。但是,我还需要公开一个属性,该属性从状态的另一个属性中获取数据并对其进行转换。我想使用 .pipe 来确保转换后的数据与实际数据保持同步。我只是不知道把这个转换逻辑放在哪里。
解决方案
您可以使用 a@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',
}
}
}
然后在您的组件中直接使用该选择器:
@Select(MyState.fullName) fullName$: Observable<string>;
推荐阅读
- mfc - 在 MFC 中,在向导生成的 WindowProc 中,如何确定消息发送方窗口句柄?
- javascript - Javascript API 数据检索
- elasticsearch - ElasticSearch NEST 多重匹配返回所有结果
- .net - 如何使用 Azure SAML2 Auth 从 Asp.Net Core 重定向到 Microsoft 登录页面
- docker - 无法从 docker 图像执行 Bokeh export_png
- azure - 从启用了软删除的 Azure Key Vault 中清除机密
- powerbi - 在 DAX Power BI 中计算 3 个月没有空白值的移动平均线
- python - 使用 Apache 和 mod_wsgi Windows 部署多个 Django 网站
- deep-learning - 如何在 pytorch 中加载 CUB-200-2011 数据集?
- hibernate - 在从 Grails 1.3.7 迁移后使用 Grails 2.3.2 和 Hibernate 3.6.10.3 创建的 SQL 上,基类被添加到子类中,tablePerHiearchy 为 false