【发布时间】:2019-08-07 18:23:06
【问题描述】:
我有一个函数调用以获取新的访问令牌 getNewAccessToken() 并在该方法中将令牌设置为状态。然后调用另一个方法 postComment() 但它还没有正确的 accessToken 状态(因为 setstate 是一个异步调用并且可能还没有值。解决这个问题的最佳方法是确保 postComment( ) 有正确的状态值吗?
goPost() {
console.log("In goPost()");
this.getNewAccessToken();
this.postComment();
}
async getNewAccessToken(){
const response = await fetch(
`https://www.reddit.com/api/v1/access_token`... set up fetch
);
if (response.ok) {
this.setState({
accessToken: json.access_token
});
}
}
async postComment() {
let accessToken = this.state.accessToken;
}
【问题讨论】:
-
当状态更新时,你的组件也会更新。您可以检查
componentDidMount内部的此类更改,以便当您的 accessToken 设置为状态时,您的组件 以正确的生命周期方法对此做出反应。或者(坏主意,但为了学习),setState有一个回调参数 -
您能否附上文件的完整代码,而不仅仅是其中的一部分?
标签: javascript reactjs ecmascript-2016