【发布时间】:2019-01-17 17:17:43
【问题描述】:
在 api 调用获取数据后,我需要在 FETCH_DATA_SUCCESS 上调用一些进一步的操作。
'RESET_IMAGE_DATA' 和 'INITIALISE_FILTERS' 操作必须在每个 'FETCH_DATA_SUCCESS' 上调用。但是,'SET_PIVOT' 只能在 action.context === 'pivot' 时调用。
所以,有两种可能的情况。
在第一种情况下,'RESET_IMAGE_DATA' 和 'INITIALISE_FILTERS' 被调用。
在第二种情况下,'RESET_IMAGE_DATA'、'INITIALISE_FILTERS' 和 'SET_PIVOT' 被调用。
我尝试了各种解决方案都没有成功,我最近的尝试如下。任何帮助将不胜感激。
const loadDataEpic = (action$, state$) =>
action$.pipe(
ofType('FETCH_DATA_SUCCESS'),
mergeMap(action => {
if (action.context === 'pivot') {
return of({
type: 'SET_PIVOT',
});
}
return of(
{
type: 'RESET_IMAGE_DATA',
},
{
type: 'INITIALISE_FILTERS',
}
)}
)
);
【问题讨论】:
-
我认为没有什么问题。也许你可以用一个三元运算符来缩短它。
-
我已更新问题以使其更清晰
标签: javascript rxjs redux-observable