Вы можете достичь этого, используя реквизит, представленный в упаковке. Передайте значение выбранной кнопки функции обратного вызова и измените стиль кнопки в соответствии со значением.
Вот рабочая демонстрация: https://snack.expo.io/@cruz404/custom-radio-button
Пример кода:
export default class App extends Component {
constructor(props){
super(props);
this.state ={
activeBgColor: "white",
activeTxtColor: "black",
inActiveBgColor: "white",
inActiveTxtColor: "black",
};
}
changeStyle(value) {
if(value == "transport_car") {
this.setState({
activeBgColor: "red",
activeTxtColor: "white",
inActiveBgColor: "white",
inActiveTxtColor: "black",
});
} else if(value == "transport_bike") {
this.setState({
activeBgColor: "blue",
activeTxtColor: "white",
inActiveBgColor: "white",
inActiveTxtColor: "black",
});
} else if(value == "transport_bus") {
this.setState({
activeBgColor: "green",
activeTxtColor: "white",
inActiveBgColor: "white",
inActiveTxtColor: "black",
});
}
}
render () {
return (
<View>
<Text> SELECT: </Text>
<RadioGroup
radioGroupList={radioGroupList}
buttonContainerActiveStyle = {{backgroundColor: this.state.activeBgColor}}
buttonTextActiveStyle = {{color: this.state.activeTxtColor}}
buttonContainerInactiveStyle = {{backgroundColor: this.state.inActiveBgColor}}
buttonTextInactiveStyle = {{color: this.state.inActiveTxtColor}}
onChange={(value) => {this.changeStyle(value);}}
/>
</View>);
}
}
Надеюсь, это поможет!