javascript - 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}/>
)
}
}
解决方案
推荐阅读
- javascript - Javascript 填充字段给出未定义的函数错误
- mysql - 如何从表中获取每个 id 的最新状态?
- java - PHP to java-treeview 程序
- php - 在处理程序中调用api时如何停止recyclerview的闪烁
- android - 在没有 fcm 、 pusher 的情况下创建我自己的推送通知服务,
- python - 在最终的 GroupBy 中保留空箱/桶,即使没有数据填充它们
- selenium - testng.xml 套件如果失败则跳过所有测试类,它仅适用于 Microsoft Edge 浏览器
- c - c - find palindrome
- visual-studio-code - Haskero:以下 GHC 选项与 GHCi 不兼容,尚未传递给它:-threading
- algorithm - 给定代表单个出租车预订的数据序列(开始位置,结束位置),找到最佳非中断序列