Redux Saga is Return不是我行动的有效渠道 [英] Redux saga is returning is not a valid channel on my actions

查看:0
本文介绍了Redux Saga is Return不是我行动的有效渠道的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试处理我的redux saga函数,并希望传入关于check Error redux saga函数的错误:

export function* onCheck({payload}) {
  try {
    if (internetConnected) {
      const response = yield call(checkApi, payload);
      if (token) {
          // do something
      }
    } else {
      yield put(authenticateError, 'No Internet');
    }
  } catch (error) {
    yield put(checkError, error);
  } 
}

我的操作是这样安排的:

export const checkError = (error) => {
  return {
    type: type.CHECK_IN_ERROR,
    error,
  };
};

我的减速机是这样的:

export default function (state = initialState, action) {
 case type.CHECK_IN_ERROR:
      return {
        ...state,
        error: action.payload,
      };
}

当我加载此程序并尝试检查是否在尝试/捕获时捕获错误时,抛出此错误:

ExceptionsManager.js:114 Error: put(channel, action): argument function checkError(error) {
    return {
      type: type.CHECK_IN_ERROR,
      error: error
    };
  } is not a valid channel

不确定我在这里做错了什么。请帮帮忙。

推荐答案

您错误地使用了put效果。除非您使用的是自定义频道(非常罕见),否则您将始终只有一个参数。

// wrong
yield put(fn, arg1, arg2);

// correct
yield put(fn(arg1, arg2))

接口参考:https://redux-saga.js.org/docs/api#putaction

这篇关于Redux Saga is Return不是我行动的有效渠道的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆