Can anyone help me. This is my source code: https://snack.expo.io/rJFgyPDpH
Idea is that, if I click to "1 Button" it should be 'red' and if I click to "2 Button" is also should change its color to 'red' but the "1 Button" should be changed to its default colour which is black. However, "2 Button".
If my approach is too simple, other methods (such as TouchableHighlight
, ES6 and etc) are also welcomed. I appreciate if you show me mistakes so that I learn from that.
Try below
state={
selectedButton: '',
};
<View style={styles.container}>
<TouchableOpacity
style={{ backgroundColor: this.state.selectedButton === 'button1' ? 'red' : 'black', padding: 15}}
onPress={() => this.setState({ selectedButton: 'button1' })}
>
<Text style={styles.text}>1 Button</Text>
</TouchableOpacity>
<TouchableOpacity
style={{ backgroundColor: this.state.selectedButton === 'button2' ? 'red' : 'black', padding: 15}}
onPress={() => this.setState({ selectedButton: 'button2' })}
>
<Text style={styles.text}>2 button!</Text>
</TouchableOpacity>
</View>