Luk*_*ela 3 reactjs redux-observable rxjs6
史诗中有没有办法接收商店以前的状态?我觉得你不能,因为史诗站在Action -> Reducer -> Epic队列的末尾。
记住:当一个 Epic 收到一个动作时,它已经通过你的减速器运行并且状态更新了。
但也许有人会为我的问题提出一些解决方案:
我有一个处理下载 json 的史诗,然后将其存储在商店中。我认为另一部将检查已更改内容的史诗会很好地发送“新项目”通知,但为此我需要在商店更改之前访问状态:) 也许我应该在同一个史诗中执行此操作?
如果您正在使用redux-observable > 1.0,则可以pairwise在state$流上使用运算符。
例如:
const testEpic = (action$, state$) => {
// Observable of [oldState, currentState)]
const statePairs$ = state$.pipe(pairwise());
return action$.pipe(
ofType('TEST_ACTION'),
withLatestFrom(statePairs$),
map(([action, [ oldState, newState ]]) => { ..... })
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
906 次 |
| 最近记录: |