У меня есть 5 вариантов, которые я обернул touchableopacity. Я бы хотел, чтобы при нажатии одной опции цвет становился зеленым. Если я выберу другой вариант, предыдущий вариант станет серым, а новый - зеленым. Может кто-нибудь помочь мне закодировать это? Я не хочу писать кучу операторов IF. Я чувствую, что это плохой код, и есть более быстрый способ достичь своей цели. Не обращайте внимания на функцию Alert, которая у меня была только тогда, когда я изначально настраивал touchableopacity.
const [angryColor, setAngryColor] = useState('grey')
const [sadColor, setEmojiSad] = useState('grey')
const [neutral, setNuetral] = useState('grey')
const [happyColor, setHappyColor] = useState('grey')
const [laughColor, setLaugh] = useState('grey')
function toggleAngry(){
if (angryColor === 'grey'){
setAngryColor('green')
} else {
setAngryColor('grey')
}
}
return(
<View style={styles.screen}>
<View style={styles.container}>
<View style={styles.emojiView}>
<TouchableOpacity onPress={() => toggleAngry()}>
<FontAwesome5 name="angry" size={40} color={angryColor}/>
</TouchableOpacity>
<TouchableOpacity onPress={() => Alert.alert('clicked')}>
<Entypo name="emoji-sad" size={40} color={sadColor}/>
</TouchableOpacity>
<TouchableOpacity onPress={() => Alert.alert('clicked')}>
<Entypo name="emoji-neutral" size={40} color={neutral} />
</TouchableOpacity>
<TouchableOpacity onPress={() => Alert.alert('clicked')}>
<Entypo name="emoji-happy" size={40} color={happyColor}/>
</TouchableOpacity>
<TouchableOpacity onPress={() => Alert.alert('clicked')}>
<FontAwesome5 name="laugh-beam" size={40} color={laughColor} />
</TouchableOpacity>
</View>