【发布时间】:2019-08-21 09:49:22
【问题描述】:
我对这里发生的事情完全感到困惑。我在 React 中设置状态,但它更新得很晚。这是函数:
fetchTimesheets() {
const userId = cryptInfo.decrypt(localStorage.getItem('user_id'))
var userArray = []
var timeSheets = []
fetchManagerProject(userId)
.then(async (res) => {
const projects = await res.json()
projects.forEach(project => {
project.teammember && project.teammember.forEach(member => {
if (userArray.indexOf(member.user) === -1) {
userArray.push(member.user)
fetchUserTimelogs(member.user)
.then(async (res) => {
const timesheet = await res.json()
if (timesheet)
timesheet.forEach(sheet => {
timeSheets.push(sheet)
});
})
}
})
})
this.setState({
timesheets: timeSheets
})
})
}
我在componentDidMount方法上调用这个函数
componentDidMount() {
this.fetchTimesheets()
}
但是我知道我的值刚刚被评估并且状态没有更新。我看到了很多与此相关的问题,但没有得到好的解决方案。
【问题讨论】:
-
更新状态时timeSheet数组不为空?
-
这能回答你的问题吗? console.log is not showing correct values
标签: javascript reactjs