Redux 有条件地分派副作用
假设我有一个搜索组件,它根据用户选择的标签进行搜索。如果用户取消选择所有标签,我知道搜索结果将为空;没有必要点击服务器。我如何重构这部史诗以有条件地运行副作用Redux 有条件地分派副作用,redux,redux-observable,Redux,Redux Observable,假设我有一个搜索组件,它根据用户选择的标签进行搜索。如果用户取消选择所有标签,我知道搜索结果将为空;没有必要点击服务器。我如何重构这部史诗以有条件地运行副作用 const removeTagEpic = (action$: any, store: any) => action$ .ofType(types.REMOVE_SELECTED_TAG) .map((action: any) => action.payload) .mergeMap((tag:
const removeTagEpic = (action$: any, store: any) =>
action$
.ofType(types.REMOVE_SELECTED_TAG)
.map((action: any) => action.payload)
.mergeMap((tag: any) => {
//only do this is store.getState().tags > 0
ajax.getJSON(`https://api.github.com/users/dwaynelavon`)
.flatMap(response =>
Observable.concat(
Observable.of(actions.fetchingProfiles(true)),
Observable.of(actions.fetchProfilesFulfilled(profiles)),
Observable.of(actions.fetchingProfiles(false))
)
)
})
你不能用过滤器操作符检查里面的标签吗
const removeTagEpic = (action$: any, store: any) =>
action$
.ofType(types.REMOVE_SELECTED_TAG)
.filter(_ => store.getState().tags > 0)
.map((action: any) => action.payload)
.mergeMap((tag: any) => {
ajax.getJSON(`https://api.github.com/users/dwaynelavon`)
.flatMap(response =>
Observable.concat(
Observable.of(actions.fetchingProfiles(true)),
Observable.of(actions.fetchProfilesFulfilled(profiles)),
Observable.of(actions.fetchingProfiles(false))
)
)
})
如果不满足条件,则不会发出types.REMOVE_SELECTED_标记的源
谢谢,我在你回答之前就想好了哈哈