首页 > 解决方案 > Axios GET 请求停留在 Promise

问题描述

我有一个帮助文件,其中有一个使用 axios 发出 GET 请求的函数。我将此函数导入一个类并在一个componentDidMount()方法中使用它并将响应设置为状态。

但是,当我调试代码以查看为什么我没有从请求中获取数据时,我看到请求正在返回:Promise {<pending>}并为状态留下一个承诺,并给我这个类的子组件中的错误。

如何从请求而不是承诺中获取数据?

下面是 GET 请求的代码:

export const GetRequest = (params) => {
    const url = `/api/v1/${params}`

    return axios.get(url)
        .then(response => {
            return response.data.data.attributes
        })
        .catch( error => {
            console.log(error)
        })
}

这是该课程的代码:

import React from 'react';
import UpdateForm from './UpdateForm'
import {GetRequest} from "../../utils/requests";
import axios from "axios";

export default class UpdateContact extends React.Component {
    componentDidMount() {
        const slug = this.props.match.params.slug
        const url = "contacts/" + slug + ".json"

        const response = GetRequest(url)
        this.setState({ contact: response })
    }

    render() {
        return(
            <UpdateForm contact={this.state}/>
        )
    }
}

标签: javascriptreactjs

解决方案


推荐阅读