gpt4 book ai didi

javascript - 请解释 : uncaught at check runSaga, saga 参数必须是生成器函数

转载 作者:行者123 更新时间:2023-11-29 18:43:37 25 4
gpt4 key购买 nike

我正在学习关于 pluralsight 的教程,这是一个全栈 react/redux 教程,我正在使用以下代码创建一个 saga.mock.js 文件。

这是我不熟悉的东西,希望得到理解和解释,这样我才能理解。

import { take, put, select } from 'redux-saga/effects';
import * as mutations from './mutations';
import uuid from 'uuid';

export default function* taskCreationSaga(){
while (true) {
const {groupID} = yield take(mutations.REQUEST_TASK_CREATION);
console.log("Got group ID", groupID);
}
}

然后在我商店的 index.js 中,我在星号中添加了底部代码**

import { createStore, applyMiddleware } from 'redux';
import { defaultState } from '../../server/defaultState';
import { createLogger } from 'redux-logger';
import createSagaMiddleware from 'redux-saga';

const sagaMiddleware = createSagaMiddleware();
import * as sagas from './sagas.mock'

export const store = createStore(
function reducer(state = defaultState, action) {
return state;
},
**applyMiddleware(createLogger(), sagaMiddleware)
);

for (let saga in sagas) {
sagaMiddleware.run();
}**

并收到以下错误,“在检查 runSaga(storeInterface, saga, ...args) 时未捕获:saga 参数必须是生成器函数!”

我通过改变解决了这个问题这个:

for (let saga in sagas) {
sagaMiddleware.run();
}

为此:

for (let saga in sagas) {
sagaMiddleware.run(sagas[saga]);
}

最佳答案

文档要求您为 run() 方法提供生成器函数,因此您只需传递默认生成器 taskCreationSaga 并从 sagas.mock.js 文件导入它

import { taskCreationSaga } from './sagas.mock';

for (let saga in sagas) {
sagaMiddleware.run(taskCreationSaga)
}

这应该适合您并让您继续类(class)。

关于javascript - 请解释 : uncaught at check runSaga, saga 参数必须是生成器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55428261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com