如何将提取API移动到单独的文件中

时间:2019-05-15 12:01:59

标签: reactjs

我正在从组件中调用一个api,因为它看上去很丑,想到将其移出,这就是我尝试过的方法:

之前:(在组件中)

fetch(url)
.then(response => response.json())
.then(data => this.setState({data, loading: false}));

之后:

我没有将获取操作放入组件中,而是将其移至另一个函数:

export function getData ( url) {
    fetch(url)
    .then(response => response.json())
    .then(data => {
        return data;
    })
}

我正在打电话 getData(url) 从组件中获取,但是有一些不正确的地方,我没有看到任何错误,但是它不起作用

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这不起作用,因为您实际上没有在getData中返回任何内容。箭头函数中的return不返回覆盖函数,而仅返回箭头函数。

您可以执行以下操作来解决此问题:

export function getData ( url) {
    return fetch(url).then(response => response.json())
}

并像这样处理返回的承诺:

getData("http://...").then(result => console.log(result))