此问题已在此处有答案:
The useState set method is not reflecting a change immediately(17回答)
6天前关闭
我有一个React Native组件,我在onPress事件处理程序中使用setter函数(setSubtractArr)更新状态变量。然而,我面临着一个问题,状态更新似乎没有同步发生,导致在状态更新后立即调用另一个函数(endFunction)时出现问题。
const handlePress = () => {
// State update
props.setSubtractArr(prev => prev + (props.workoutInfo.reps * props.workoutInfo.interval / 1000));
// Log the updated value
console.log('subtractArr:', props.subtractArr);
// Call another function with the updated value
endFunction(props.subtractArr); // Not reflecting the updated value
};
return (
<TouchableOpacity onPress={handlePress}>
{/* My TouchableOpacity content */}
</TouchableOpacity>
);
在上面的代码中,console.log语句正确地输出了subtractArr的更新值,但是当将props.subtractArr传递给endFunction时,它没有反映更新后的值。看起来状态更新是异步的,不会立即发生。
如何确保在onPress事件处理程序中使用已更新的subtractArr值调用endFunction之前完成状态更新?
任何帮助或指导都将不胜感激。谢谢你!
1条答案
按热度按时间xkrw2x1b1#
每当
props.subtractArr
发生更改时,都需要运行endfunction(...)
。尝试将此代码添加到您的: