如何获得TouchableOpacity以指定顺序调用函数?

问题描述

我试图在进行API调用之前设置组件的状态。问题是首先调用了API调用。这就是我所拥有的。

onPress={() => {
  setMeal('dinner');
  addToLogButtonpressed();
}}

当我按下按钮addToLogButtonpressed();时会先调用,这会导致错误

如何在setMeal之前给addToLogButtonpressed打电话?

解决方法

我认为您可以使用useEffect来实现

const [meal,setMeal] = useState('')

useEffect(() => {
  addToLogButtonPressed();
},[meal])

onPress={() => {
  setMeal('dinner');
}}
,

对于我以前的项目,我也遇到了这个问题,只需将进餐值传递给您的addToLogButtonPressed()并在函数内部进行访问即可。 如果您在其他任何地方都没有使用“晚餐”值,则可以跳过设置状态,这将为您节省一次重新渲染。

onPress={() => {
 setMeal('dinner');
 addToLogButtonPressed('dinner'); // like this
}}