如何将fetch api移动到一个单独的文件中



我正在从组件中调用一个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)从组件中,但是有些不对劲,我没有看到任何错误,但它不起作用

有什么想法?

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

您可以做类似的事情来解决它:

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

并与返回的诺言一样:

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

最新更新