React-Native: как изменить фон второго действия
Проблема довольно проста, я думаю, но я не могу понять это. Я использую библиотеку act-native-router-flux и библиотеку NativeBase для кнопок.
Это мой код:
<Button transparent onPress={Actions.MainOne } style={{ width: 50, height: 50 }} >
<Text>Option1</Text>
</Button>
<Button transparent onPress={Actions.MainTwo} style={{ width: 50, height: 50 }} >
<Text>Option2</Text>
</Button>
Я хочу изменить цвет фона кнопки всякий раз, когда я нажимаю на нее, и она активна. И если я нажимаю другую кнопку, то только что нажатая кнопка возвращает фон, а первая кнопка возвращается к обычному прозрачному фону. Я не совсем уверен, как я могу добавить два действия к кнопке. Если кто-то может помочь, я был бы признателен. Мне не нужно обязательно использовать библиотеку кнопок, поэтому любые идеи по этому поводу приветствуются!
Спасибо!
1 ответ
Я использую Flux-роутер для навигации по сценам. Вот как я бы изменил цвет фона кнопки при нажатии:
constructor() {
super();
state = {
color1: 'transparent',
color2: 'transparent',
}
}
setActive(button) {
if (button === 1) {
if (this.state.color1 === 'transparent') {
this.setState({
color1: 'red',
color2: 'transparent'
})
}
} else {
if (this.state.color2 === 'transparent') {
this.setState({
color2: 'red',
color1: 'transparent'
})
}
}
}
{ . . . }
<Button
onPress={this.setActive.bind(this, 1)}
style={{ width: 50, height: 50, backgroundColor: this.state.color1 }}
>
<Text>Option1</Text>
</Button>
<Button
this.setActive.bind(this, 2)
style={{ width: 50, height: 50, backgroundColor: this.state.color2 }}
>
<Text>Option2</Text>
</Button>