javascript - Reactjs 在 componentDidMount 上异步获取数据
问题描述
我想做的是,在渲染之前获取用户数据,我创建了一个对象调用 API,它使用 axios 从 api 获取数据(它成功了)现在我想在 info.js 组件上获取它,所以我在 componentDidMount 上调用它:
API.js
const API = {
async getUser() {
const cookies = new Cookies();
const token = cookies.get('token');
let result = null;
if (token) {
await axios.get('http://localhost:8000/api/user').then(res => {
if (res.data.success) {
result = res.data.success;
}
});
return await result;
} else {
return false;
}
}
};
Info.js
import API from 'API'
export default class UserInfo extends React.Component {
constructor() {
super();
this.state = {result: null};
}
componentDidMount() {
let result = API.getUser();
this.setState({
result: result
});
console.log(result)
}
render() {
return(
<div className="UserInfo">
{this.state.result}
</div>
)
}
}
但它给了我这个:
Promise {<pending>}...
所以我很困惑,我做错了什么?
解决方案
async componentDidMount() {
let result = await API.getUser();
this.setState({
result: result
});
console.log(result)
}
推荐阅读
- c# - WPF 在运行时基于配置文件对 StackPanel 中的 XAML 元素进行排序
- selenium - 剑道 DatePicker 上的硒(守夜人)setValue 不起作用
- phpmailer - phpmailer,客户端不响应服务器
- python - 在 Python 中将 nparray 映射到元组
- sql - 计算分区 HIVE 中行的时间戳差异
- java - 如何使用 java 8 从对象列表中删除字段,下面是我想要实现的示例
- unity3d - 如何在android中显示任何文件类型的统一UI滑块填充unitywebrequest downloadProgress?
- javascript - 在 DIV 中选择 P 会在浏览器控制台中出现错误,但在 JsFiddle 中可以正常工作。为什么?
- python - 在 argparse 中自动添加更短的(posix)参数
- go - 在 Golang 中发布 Slackbot 响应