典型情况:我通过http获取数据并将其存储到ngrx / store中。但是数据包含字符串而不是JS Date对象。我应该在哪里转换它们?
this.http(...).map(convert).subscribe(store.dispatch(new AddAction))
case add: convert(payload); return state
或者在行动中:
export class AddMany implements Action {
readonly type = addMany
constructor(public payload: FinishedCall[]) {
this.payload = this.convertData(payload)
}
}
我想我应该在服务中这样做,但我害怕获得非常大的服务文件
答案 0 :(得分:0)
我建议在reducer中进行转换功能。
减少剂应该是无副作用的。这意味着他们不应该修改自己范围之外的东西。他们应该简单地将下一个应用程序状态计算为reducer参数的纯函数。
我们可以在这里看到我们正在传递一个初始状态(当前数字)和一个Action。要处理每个操作,常见的方法是使用switch语句。而不是每个reducer需要显式订阅调度程序,每个操作都会传递到每个reducer,后者处理它感兴趣的操作,然后将新状态返回到下一个reducer。
希望有所帮助