react-native - 使用 setState() 后 React Native 状态不更新
问题描述
我在 React Native 的一个类中有一个状态和函数,我正在使用它来创建一个计数器来记录已完成任务的数量。在我的 updateTaskCountHandler() 函数中,taskCount 成功地将 +1 计数为先前的值,但是在将 completeTasks 设置为新值后控制台记录该值时,它并未显示 completeTasks 已成功更新为新值。如何正确更新 completeTasks 的状态?
state = {
completeTasks: 0
}
updateTaskCountHandler (className) {
let taskCount = 0;
taskCount = taskCount + 1;
this.setState({
completeTasks: taskCount
})
console.log('completeTasks:' + this.state.completeTasks);
}
<ScrollView style={styles.taskitems}>
<TaskCard clicked={() => this.updateTaskCountHandler("task1")} id='task1' chore='Get Dressed'/>
</ScrollView>
解决方案
如果你想在你的 setState 逻辑之后看到状态结果,你应该在 setState 回调中记录你的状态,因为 react 的 setState 函数是异步的。
推荐阅读
- c# - 配置 .net adfs 声明感知示例应用程序
- html - Flexbox rearrange vertically and horizontally
- rest - What is the correct HTTP status code for search results not found?
- binding - BizTalk 2016 导出绑定错误消息
- javascript - The last result from the search is hidden by the bottomTabNavigaor
- docker - SSH keys keep getting deleted from Google Compute Engine VM
- javascript - Parsing CSS by javascript. Inconsistency across Edge and Chrome
- javascript - 如何从node.js中的/数中拆分字符串?
- reporting-services - SSRS dataset with DAX and multiple fact tables
- azure - How to parse a message in Azure IOT hub logic app