NGXS 在 setState 中传播状态

什么时候
import { State, Action, StateContext } from '@ngxs/store';

export class FeedAnimals {
  static readonly type = '[Zoo] FeedAnimals';
}

export interface ZooStateModel {
  feed: boolean;
}

@State<ZooStateModel>({
  name: 'zoo',
  defaults: {
    feed: false
  }
})
export class ZooState {
  @Action(FeedAnimals)
  feedAnimals(ctx: StateContext<ZooStateModel>) {
    const state = ctx.getState();
    ctx.setState({
      ...state,
      feed: !state.feed
    });
  }
}

我正在从 gitbook 学习 ngxs,上面是从那里复制的块。在这个例子中...state分配给对象。为什么我们需要这个?所以我们只有一个对象属性提要并且已经分配了feed: !state.feed

托尼·吴

你需要使用 ...state 因为你想修改当前状态的状态

使用扩展运算符进行复制操作,以便将先前的状态复制到新的状态对象,并修改新创建的状态对象中的数据。

const a = [1, 2, 3]

const b = [...a, 4, 5, 6] =>  [1, 2, 3, 4, 5, 6]

所以这段代码

...state,
feed: !state.feed

您正在制作状态对象的新副本并修改状态对象内的 feed 属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ngxs setstate数组中的第一个元素

来自分类Dev

NGXS 状态功能

来自分类Dev

基于类的对象实例,用于NGXS中的状态

来自分类Dev

NGXS:我们如何将整个集合传递给 ngxs 中的动作?

来自分类Dev

登录后NGXS状态重定向用户

来自分类Dev

即使使用传播运算符React.JS,SetState也会覆盖以前的状态

来自分类Dev

不能识别setstate中的变形状态

来自分类Dev

componentDidMount中的setState不会更改状态

来自分类Dev

set setState状态评估

来自分类Dev

在Angular NGXS中从不同组件搜索数据

来自分类Dev

在Angular NGXS中的匹配URL上运行函数

来自分类Dev

使用NGXS在Angular中删除嵌套数据的对象

来自分类Dev

在Angular NGXS中访问数组内部的嵌套对象

来自分类Dev

如何在 NGXS 中创建参数化选择器?

来自分类Dev

NGXS-良好做法:在运行中传递服务所需的参数还是从状态中获取服务?

来自分类常见问题

反应setState不更新状态

来自分类Dev

反应setState覆盖数组状态

来自分类Dev

反应setState清空旧状态

来自分类Dev

没有 setState 的状态更新

来自分类Dev

React setState 不是设置状态

来自分类Dev

React setState 不设置状态

来自分类Dev

setState 更新安装状态

来自分类Dev

setState 不更新状态对象

来自分类Dev

NGXS 状态管理:在调用动作时更改状态并将其保存到数据库

来自分类Dev

React 组件的状态在渲染中的值与 setState 中的值不同

来自分类Dev

$ .get中的setState

来自分类Dev

forEachLoop中的本机setState

来自分类Dev

useLayoutEffect中的setState

来自分类Dev

ReactJS中的setState