【发布时间】:2021-11-12 13:13:06
【问题描述】:
我试图做到这一点,以便当在 react native 中按下 TouchableHighlight 时,它会从一种颜色变为另一种颜色。我的状态设置为 false 并在按下按钮时更改。但是,这会更改地图中所有元素的颜色,而不是单独更改每个项目的颜色。有没有办法独立更新每个元素的状态?
这是我的代码:
function OnboardingVibes() {
const [pressed, setPressed] = useState(false);
return (
<View style={{marginTop: 40}}>
<Text style={{fontSize: 22, color: '#FFF', marginBottom: 16}}>Vibes</Text>
<View style={styles.buttonContainer}>
{vibes.map((vibe) => {
return (
<TouchableHighlight onPress={() => setPressed(true)} style={{backgroundColor: pressed ? '#DDD' : '#4D2C5B', margin: 4, borderRadius: 4}} key={`vibe-${vibe}`}>
<Text style={styles.vibeButton}>{vibe}</Text>
</TouchableHighlight>
)
})}
</View>
</View>
);
}
【问题讨论】:
标签: javascript arrays reactjs typescript react-native