即使我不更改参与这些选择器的部分状态,所有观察到的选择器也会执行。
我的状态包含3个属性:“ a”,“ b”,“ c”,一个用于更新属性“ a”的动作,所有属性的3个静态选择器。我的组件使用异步管道来订阅“ b”,并使用来自observable的订阅方法来订阅“ c”。当我调度更改“ a”的新动作时,将执行“ b”和“ c”选择器。
下面是一个示例https://stackblitz.com/edit/ngxs-simple-1fte4j?file=app%2Fapp.component.ts
我希望所有选择器都不会执行。也许我错了,这是预期的行为,但这意味着我不能在选择器中添加任何昂贵的逻辑。
答案 0 :(得分:0)
这是NGXS的早期版本中的预期行为(例如StackBlitz 3.1.4
中使用的行为)-选择器始终作为第一个参数传递包含状态,从而导致选择器重新-评估任何状态更改。
截至目前的最新版本(3.5)提供了Selector Options来更改此设置-请查看该文档。
另请参阅与选择器选项相关的PR and linked issues。