【发布时间】:2020-09-28 19:21:31
【问题描述】:
我正在使用 ReactJS,但遇到了问题。从 axios 获取我的 response.data 后,我多次使用 setState 将所有必要的数据设置到我的状态中。但是,问题是我想等待所有 setStates 完成,然后再继续下一行代码。我不知道该怎么做,因为我知道 setState 接受第二个回调函数,但这仅适用于单个 setState。我尝试研究 Promise,但我不确定如何正确实施。
这是我的代码:
axiosInstance.get(`/customer-converted/?group=department&metric=${metric}&start=${start}&end=${end}`)
.then(response => {
this.setState({ data: response.data });
let rangeStart = (response.data.length > 3) ? response.data[response.data.length - 3].date : response.data[0].date
let rangeEnd = response.data[response.data.length - 1].date
this.setState({ start: rangeStart })
this.setState({ end: rangeEnd })
// execute next line of code here only after all setState above are finished
})
感谢所有帮助,谢谢!
【问题讨论】:
-
当setState实际更新状态时,你需要执行另一行,这就是你需要的?
-
是的,这就是我需要的
-
希望你能得到答案。
标签: javascript reactjs