首页 > 解决方案 > 使用 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>

标签: react-nativecountersetstate

解决方案


如果你想在你的 setState 逻辑之后看到状态结果,你应该在 setState 回调中记录你的状态,因为 react 的 setState 函数是异步的。


推荐阅读