我正在发出返回字符串数组的提取请求。
fetch(linkFetch)
.then(resp => resp.json())
.then(arr => {
that.setState({
images: arr
});
})
.then(this.test());
在最后一行你可以看到我尝试调用方法 test()
它只是试图访问在 fetch()
请求中设置的状态.
test(){
console.log(this.state.images[1]);
}
控制台日志“未定义”
但是,如果我将 test()
分配给按钮或其他东西,以便我可以手动调用它,它工作正常,这让我相信当我调用 .then(this.test ());
在获取请求中,它实际上是在设置状态之前被调用的。
如何确保在提取请求中设置状态后调用它?
最佳答案
您传递给 then
的参数必须是一个函数。
您正在调用 this.test
立即(即在异步函数解析之前)并传递其返回值(undefined
没有 return
语句)。
您已经在代码的上一行中找到了如何正确执行此操作的示例。
fetch(linkFetch)
.then(resp => resp.json())
.then(arr => {
that.setState({
images: arr
});
})
.then(() => {
this.test();
});
关于javascript - 执行 fetch 后调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49430522/