【发布时间】:2019-08-19 22:54:48
【问题描述】:
我正在尝试访问 renderContent 函数中的 [[PromiseValue]] 以将值呈现给用户。我在控制台日志中看到数据,但不知何故我无法访问它。
class PersonalInfo extends Component {
async fetchUser() {
const res = await axios.get('/api/current_user')
if(res)
return res.data
}
renderContent() {
if(this.fetchUser()) {
const userdata = this.fetchUser()
console.log(userdata)
console.log(userdata.email)
}
}
}
render() {
return <div>{this.renderContent()}</div>;
}
【问题讨论】:
-
我认为您可能遇到的问题是
renderContent函数是同步的。所以当你打电话给this.fetchUser时,你实际上得到了一个承诺,而不是userdata。尝试将renderContent函数转换为async函数,或者在组件生命周期中调用fetchUser函数,并更新组件state,以重新渲染组件。
标签: javascript reactjs async-await