React Native 调用函数一次按下,然后显示其他函数

hpxqektj  于 2023-01-18  发布在  React
关注(0)|答案(1)|浏览(172)

我正在做一个react-native学校项目,我想知道如何在第一次点击时调用一个函数,然后在其他点击时显示另一个函数:

<TouchableOpacity style={styles.btnMiddle} onPress={() => buyFishes(1)}>
    <View style={styles.fish}>
        <Text style={styles.shptxt}>50</Text>
        <Image style={styles.coin2}source={require("../../assets/img/coin.png")} />
    </View>
</TouchableOpacity>

这是我的按钮,在我的项目中,这个按钮显示在商店屏幕上,我需要它在第一次按下时花费50(解锁它),然后我希望它停止花费50,只是调用另一个函数。
这是我购买物品功能

const buyFishes = (id) => {
    fishes.map(fishes => {
        if(fishes.id === id)
        {
            if(Gold >= fishes.cost)
            {
                setGold(Gold - fishes.cost);
            }

        }
            if (Gold < fishes.cost)
            {
            onPress: () => Alert.alert("Not enough Gold Kiddo !");
            }

        }
    );
};

知道吗?谢谢

eqqqjvef

eqqqjvef1#

只需向组件添加一个状态,并使用它相应地调用所需的函数。

const [clicked,setClicked] = useState(false);
<TouchableOpacity style={styles.btnMiddle} onPress={onPressHandler}>
    <View style={styles.fish}>
        <Text style={styles.shptxt}>50</Text>
        <Image style={styles.coin2}source={require("../../assets/img/coin.png")} />
    </View>
</TouchableOpacity>
const onPressHandler = (id) => {
    setClicked(true);
    if(clicked)
    {
      // call second function
    }
    else 
    {
      // call first function
    }
};

相关问题