这是我的第一个堆叠式问题,如果有任何错误,请原谅。
我是一个反应,重复和传奇的初学者。我正在尝试调度一个将由传奇处理的动作,然后从传奇内部调度另一个动作。当我这样做的时候,我得到以下错误消息:
"你不能把(又称传奇中的调度(冻结。我们必须为的那些操作定义一个特殊的不可枚举属性调度目的。否则你将无法沟通适当地介于sagas&其他订阅者(动作排序变得远不可预测(。如果你正在使用redux并且你关心关于此行为(冻结操作(,则您可能需要切换冻结中间件中的操作,而不是冻结操作创建者中的操作。示例实现:
const freezeActions=store=>next=>动作=>next(Object.freeze(action((";
我没有在任何地方明确冻结我的操作。我只是在调用一个返回操作对象的函数。我不明白为什么传奇抱怨它的冻结对象。
我在这个沙盒中复制了我的错误:https://codesandbox.io/s/elastic-zhukovsky-ntmfn
所以解决方案非常简单。当我尝试导入操作创建者函数时,我没有在{}中导入。操作创建者不是定义它的默认导出。
import { setSnackbar } from "../../ducks/snackbar"; //---> senSnackbar should be imported within brackets.
//import setSnackbar from "../../ducks/snackbar"; //->dont do this
import { call, put } from "redux-saga/effects";
export function* handleCheckCoin(action) {
try {
let strSymbol = action.payload;
console.log("Symbol : " + JSON.stringify(strSymbol));
///send out a api request to check Crypto Symbol is valid
yield put(setSnackbar(true, "success", "message"));
} catch (error) {
console.log("error while launching set snack bar action : " + error);
}
}