Redux Saga is Return不是我行动的有效渠道 [英] Redux saga is returning is not a valid channel on my actions
本文介绍了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屋!
查看全文