在redux-saga中调用对象的方法时发生了奇怪的问题

问题描述 投票:0回答:1

[我写了一个ApiArticle,它是ApiBase类的扩展,然后我在ApiArticle中写了一个getArticles函数,如下所示:

getArticles(url) {
    // change the url.....
    return this.defaultGet(url);
}

如果我需要获取数据,只需执行以下操作即可。

const apiArticle = new ApiArticle();
apiArticle.getArticles();

当我只是在redux的操作中获取数据时,它工作正常。但是现在我尝试学习redux-saga。因此,我将获取数据部分更改为:

function* fetchAllArticles(action) {
  const apiArticles = new ApiArticles();
  const url = `/article-management/articles`;
  const res = yield call(apiArticles.getArticles, url);
  yield put(fetchAllArticlesSuccess(res.data.articles));
}

然后我得到了错误:TypeError:无法读取null的属性'defaultGet'

但是如果我硬编码defaultGet而不调用它,它将起作用。

getArticles(url) {
    // change the url.....
    return axios.get(url).....
}

似乎在使用redux-saga时无法使用'this',如何解决它?

redux-saga
1个回答
0
投票

如果需要call效果来调用特定值为this的函数,则需要告诉它。有几种不同的方法可以找到in their documentation,但是一个示例是将数组作为第一个参数传递。数组的第一个元素指定应为this,第二个元素指定要调用的函数。

© www.soinside.com 2019 - 2024. All rights reserved.