Але*_*лов 9 state-management ngxs angular-state-managmement
我学习ngxs但是当我应该用我无法理解patchState和setState?有什么不同?
const state = ctx.getState();
let data = this.service.list();
ctx.setState({
...state,
feedAnimals: data
});
Run Code Online (Sandbox Code Playgroud)
与
let data = this.service.list();
ctx.patchState({
feedAnimals: data
});
Run Code Online (Sandbox Code Playgroud)
Mar*_*eld 14
这两段代码是等价的.
patchState只是setState({...state, ... }代码的简写版本.
将来patchState很可能会发展成为一个更有用的不变性助手,它具有相等性测试(即状态只有在补丁实际改变任何值时才会改变)和补丁操作符(这仍在讨论中).
我建议使用patchState整洁,并利用他们的方式的功能.
Mic*_*lis 12
const state = context.getState();
state.permissions = action.payload;
context.setState(state);
Run Code Online (Sandbox Code Playgroud)
const state = context.getState();
state.permissions = action.payload;
context.setState({ ...state });
Run Code Online (Sandbox Code Playgroud)
const state = context.getState();
state.permissions = action.payload;
context.patchState(state);
Run Code Online (Sandbox Code Playgroud)
所有的例子都更新了状态......但是第一个没有激活状态变化的observable,因为状态是不可变的,这意味着你不能简单地编辑它并保存它,它是不可编辑的,你总是需要克隆旧状态,编辑新副本并保存此新状态.patchState只是为你做.
| 归档时间: |
|
| 查看次数: |
4770 次 |
| 最近记录: |