@@ ngrx / effects再次执行分派操作

问题描述 投票:0回答:1

我是ngrx / store和effects的新手,所以我仍然不了解分派操作的流程:

  1. 动作->效果->减速器->存储
  2. 动作->减速器->效果->减速器->存储

我的问题是,当我打电话给store.select()时,我发现该动作被调度了两次,这就是我为测试所做的:

减速器功能

switch (action.type) { 
  ...
  default: { 
    console.log('In reducer function'); 
    return state; 
  }
}

Effects类的构造函数

constructor( private action$: Actions ) { 
  console.log('in effect constructor'); 
}

这就是我在控制台中得到的

In reducer function
in effect constructor
In reducer function
ngrx ngrx-store ngrx-effects
1个回答
0
投票

尝试登录reducer不仅是一条消息,而且要登录action.type,然后您会看到它具有2个不同的动作:store initeffects init

[当您调度action时,它先移至effects,然后移至reducer,然后reducer可以更新相关的state

通常人们调度一个加载动作,在一个效果中对其进行处理,效果加载数据并返回带有有效负载的成功动作,然后化简器接收成功动作并将有效负载设置为其状态。

© www.soinside.com 2019 - 2024. All rights reserved.