0
新概念和设置,所以我很抱歉我的vage描述!Redux佐贺类发电机
我试图为我有不同的模块创建可重用的传奇。我遇到的问题是this
似乎超出了类中的生成器函数的概念,所以我正确地认为这个函数被静态调用?
有没有人有任何想法我可以实现这种结构?基本上我想要做的是调用一个函数,我可以操纵url变量和一个叫config的对象。我来自PHP背景,所以我有扩展Abstract类的想法。
export default class Saga {
config = {};
constructor(config) {
this.config = config;
}
* paginationAsync()
while(true) {
const action = yield effects.take(this.config.PAGINATION_ASYNC);
const url = yield effects.call(this.generatePaginationUrl, action);
//this.config = "Cannot read property 'config' of null"
//Continue with stuff here
}
}
}
使用上述类
import Saga from './Saga';
import {effects} from 'redux-saga';
import * as config from './config';
class SalonSagas extends Saga {
generatePaginationUrl(action) {
return 'salons/';
}
}
export default function* saga()
{
const sagas = new SalonSagas(config);
effects.all([
effects.fork(sagas.paginationAsync),
]);
}
上一页我用这个设置。我试图避免复制和粘贴这个函数为每个我想要使用此方法的实例。
function* pagintationAsnyc()
while(true) {
const action = yield effects.take(config.PAGINATION_ASYNC);
const auth = yield effects.select((state) => state.auth);
//generic action
const response = yield effects.call(api.get, '/salons', {'Authorisation': 'Bearer '+auth.token});
//do more generic actions I'm trying to prevent copying and pasting
}
}
感谢我给一个去我曾尝试'effects.fork(paginationAsync(config))'并且失败了所以我放弃了这个想法,然后想到也许我可以在传奇功能中做点什么,但是不确定!再次感谢! – sourRaspberri