Я бы поддерживал состояние выбранного радио через родительский компонент, который будет обновляться обработчиком щелчков, передаваемым через реквизиты от родителя дочерним компонентам радио, и присоединяться к внешнему div. Выбор входного компонента можно определить, посмотрев, соответствует ли selectedRadio, переданный через реквизиты, идентификатору для этой конкретной радиостанции, также передаваемой через реквизиты.
const radioIds = [ ]; // whatever identifiers may be required
Parent extends React.Component {
constructor(props) {
super(props);
this.state = {
selectedRadio = 1;
}
selectRadio = id => {
this.setState({ selectedRadio: id });
}
render() {
return (
<div>
{radioIds.map(id => <Radio handleRadioSelect={this.radioSelect} id={id} selectedRadio={this.state.selectedRadio} />) // include other props
</div>
)
}
}
const Radio = (props) => {
return (
<div className="RadioButton" onClick={() => props.handleRadioSelect(props.id)>
<div className="card mx-3 mb-3">
<div className="card-body hightlight">
<div className={"icon-type" + props.icon}></div>
<input id={props.id} value={props.value} type="radio" checked={props.selectedRadio === props.id} />
{props.name}
</div>
</div>
</div>
);
}