У меня проблема при попытке изменить стиль сопоставленной TouchableOpacity.
Я отображаю список TouchableOpacity, и мне хотелось бы, чтобы при нажатии на одну из них фоновое изменение цвета (в черном цвете) только ная нажал, но также для сброса backgroundColor другой TouchableOpacity, которую я щелкнул ранее.
Так, например, если я нажму на первую TouchableOpacity, фон этого станет черным.И после, если я нажимаю на второй, фон второго становится черным, а фон первого снова становится серым.
export default class Playground extends Component {
state = {
isPressed: false
};
handlePress = () => {
this.setState({
isPressed: !this.state.isPressed
});
};
render() {
let array = [0, 1, 2];
return (
<View style={styles.container}>
<Text>Test</Text>
{array.map(item => {
return (
<TouchableOpacity
key={item}
style={this.state.isPressed ? styles.buttonPressed : styles.button}
onPress={this.handlePress}
>
<Text>Click on it</Text>
</TouchableOpacity>
);
})}
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
marginTop: 50
},
button: {
backgroundColor: 'grey'
},
buttonPressed: {
backgroundColor: 'black'
}
});
Это то, что я пытался, но когда я нажимаю на один TouchableOpacity, backgroundColorиз них все меняются.
Я хотел бы нацелиться только на одного и сбросить другой одновременно