gpt4 book ai didi

ngxs - 为什么 NGXS Action 上有一个属性 `type`

转载 作者:行者123 更新时间:2023-12-05 06:06:47 26 4
gpt4 key购买 nike

我正在阅读 NGXS例如,它看起来像这样:

export class NewState {
static readonly type = '[State] New';
constructor(public payload: MyState) { }
}

在我的店里我可以听那个 Action

@Action(New)
newState(ctx: StateContext<MyState>, { payload }: { payload: MyState }) {
ctx.setState(payload);
}

因此,尽管我将静态类型指定为 [State] New,但我没有看到它在我的代码中任何地方返回。

我的第一个想法是,因为它是一个标识符,所以如果你有多个操作,就需要它,就像这样

@Action(New)
@Action(Add)
newState(ctx: StateContext<MyState>, action: MyState | AddState) {
if (action.constructor.type === New.type) {
ctx.setState(payload);
} else {
// do something else
}
}

但是话又说回来,你可以不用 type 来做,当然像这样其中之一:)

所以,我的问题是:什么时候应该使用type

最佳答案

你需要打字。这就是 NGXS 的工作原理。它不基于实例进行检查。
From the docs :

Each action contains a type field which is their unique identifier.

关于ngxs - 为什么 NGXS Action 上有一个属性 `type`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65658875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com