首页 > 解决方案 > 如何在 NGXS 中使用 patchState 与 setState?

问题描述

我正在学习 ngxs,但我不明白什么时候应该使用patchStateand setState?有什么不同?

const state = ctx.getState();
let data =  this.service.list();
ctx.setState({
    ...state,
    feedAnimals: data
});

对比

let data =  this.service.list();
ctx.patchState({
    feedAnimals: data
});

标签: state-managementngxsangular-state-managmement

解决方案


这两段代码是等价的。 patchState只是setState({...state, ... }代码的简写版本。

将来patchState很可能会演变成一个更有用的不变性助手,包括相等测试(即,只有在补丁实际更改任何值时才会更改状态)和补丁运算符(这仍在讨论中)。

我建议使用patchState整洁并利用即将推出的功能。


推荐阅读