В настоящее время у меня есть 4 TouchableHighlights, и мой код выглядит следующим образом:
состояние:
this.state = {
selected: null,
selectedButton: ''
}
Touchable Highlight (они все одинаковы, кроме текста)
<TouchableHighlight
onPress={this.selectedButton}
underlayColor='blue
style={[styles.box, { backgroundColor: (this.state.selected === true ? 'red' : 'blue') }]}>
<Text>1</Text>
</TouchableHighlight>
мои функции:
selectedButton = () => {
this._handlePress('flag', '1')
this.setState({
selected: true,
});
};
_handlePress(flag, button) {
if (flag == 1) {
this.setState({ selected: true });
}
this.setState({ SelectedButton: button })
}
Текущее поведение: всякий раз, когда я выбираю одну кнопку, все становятся выделенными и не могут быть нажаты. Желаемое поведение: я хочу, чтобы за один раз была выбрана только одна кнопка с сохранением ее состояния где-то.
Примечание: я мог бы получить желаемое поведение, создав 4 разные функции, которые содержат другой номер флага, однако я Хотелось бы сделать это самым чистым способом.
Любое руководство, пожалуйста?
Спасибо