为了账号安全,请及时绑定邮箱和手机立即绑定

Redux传奇收到功能不是对象作为操作

Redux传奇收到功能不是对象作为操作

拉风的咖菲猫 2021-05-13 10:17:13
我正在将我的一些代码转换为使用redux-saga(我以前只是redux-thunk,但现在并排运行它们)并已以该示例为基础。我遇到的唯一问题是使用以下函数作为参数,takeEvery有时可以按预期工作,但有时会中断,因为它接收的是函数而不是操作对象。const requestAction = action => action.type.includes('REQUEST');function* watchAuthenticationStatus() {  yield takeEvery(requestAction, ensureAuthenticated);}从内部注销操作requestAction向我显示,很多时候我的操作作为预期的对象通过,例如{ type: "data/FETCH_REQUEST", data: Array(1) }但是,我也看到很多这类事情:ƒ (_x) {  return _ref.apply(this, arguments);}ƒ (_x2, _x3) {  return _ref3.apply(this, arguments);}我暂时通过检查是否action.type存在来解决这个问题,但是有人能解释为什么我有时会看到这些匿名函数吗?编辑按照下面的要求,我检查了中间件的顺序,最初是这样的:const sagaMiddleware = createSagaMiddleware();const store = createStore(  rootReducer,  composeEnhancers(applyMiddleware(sagaMiddleware, thunk)));sagaMiddleware.run(rootSaga);重新排列传奇和重击到以下内容解决了我的问题:composeEnhancers(applyMiddleware(thunk, sagaMiddleware))
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

重新排序中间件可以解决此问题,最初看起来是这样的:

composeEnhancers(applyMiddleware(sagaMiddleware, thunk))

首先放置重磅可解决此问题:

composeEnhancers(applyMiddleware(thunk, sagaMiddleware))


查看完整回答
反对 回复 2021-05-27
  • 1 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信