gpt4 book ai didi

javascript - Redux_Saga。如何将函数作为参数传递给嵌套的生成器?

转载 作者:行者123 更新时间:2023-11-29 23:22:21 26 4
gpt4 key购买 nike

所以,我想将一些函数 setupSocket 作为参数推送到嵌套的生成器 createSaga 中执行,但现在我不明白我该怎么做?

在父生成器 mySaga 中,setupSocket 正常显示,但在 createSaga 中没有...

import { takeEvery, put, call, take } from 'redux-saga/effects'; 
import { delay } from 'redux-saga';
import { addMessage, addUser } from '../actions'
import * as constants from '../constants'

function* createSaga(action, setupSocket) {
try {
console.log(setupSocket); // not good
yield put(addMessage(action.message, action.author, action.photo));
yield put(addUser(action.author, action.photo));
} catch (e) {
console.log(e)
}
};

function* mySaga(setupSocket) {
console.log(setupSocket); // all good
yield takeEvery(constants.ADD_DATA, createSaga);
};

export default mySaga;

最佳答案

您可以将额外的参数传递给 takeEvery,这些参数将传递给 saga。

function* createSaga(setupSocket, action) {
console.log(setupSocket); // should now be good
...
};

function* mySaga(setupSocket) {
yield takeEvery(constants.ADD_DATA, createSaga, setupSocket);
};

如果你传递一些参数,action 将永远是最后一个,所以我不得不交换 actionsetupSaga 顺序 createSaga 传奇参数。

https://redux-saga.js.org/docs/api/#takeeverypattern-saga-args

关于javascript - Redux_Saga。如何将函数作为参数传递给嵌套的生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50211483/

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