@SehiiSkachkov

Как создать группу радио кнопок?

Всем добрый вечер.
Не судите строго я новенький в реакте.
Суть вопроса как создать группу радио кнопок , что бы 1 радио кнопка была чекнута и лбл дабовлялся клас , при оnChange смена чека и класса
import React, { Component } from "react";
import Request_сheck from './Request_lbl_check.png';
import RequestRadioGroup from './RequestRadioGroup/RequestRadioGroup';
import Request_sedan from './request_sedan.png';
import Request_small from './request_small.png';
import Request_sports from './request_sports.png';
import Request_ponoram from './request_ponoram.png';
import Request_jeep from './request_jeep.png';
import './RequestForm.sass';

class RequestForm extends Component {
	state = {
	    rq_car: [
            { rq_img: Request_sedan, rq_val: "sedan" },
            { rq_img: Request_jeep, rq_val: "jeep"},
            { rq_img: Request_small, rq_val: "small"},
            { rq_img: Request_sports, rq_val: "sports"},
            { rq_img: Request_ponoram, rq_val: "ponoram"}
        ]
    }

	render() {

		const rq_car = this.state.rq_car

		return (
			<form className="request-form">

				<div className="request-car-box">
				    {rq_car.map((rq_car,index) => {
                   		return (
                   		    <RequestRadioGroup
                   		    	key={index}
                   		    	id={rq_car.rq_val}
                   		    	img={rq_car.rq_img}
                   		    	value={rq_car.rq_val}
                   		    />
                   		)
                	}) }
				</div>
			</form>
		)}
	}

export default RequestForm;

import React, { Component } from "react";
---------------------------------------------------------
const RequestRadioGroup = (props) => {
		return (
			<>
				<input 
					type="radio"
					id={props.id}
					name= "car-type"
					value={props.value}
				/>
				<label htmlFor={ props.id}>
					<img src={props.img}/>
				</label>
			</>
		)
	}

export default RequestRadioGroup;
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
const RadioGroup = props => (
  <div>
    {props.items.map(n => (
      <label className={`radio ${n.val == props.value ? 'selected' : ''}`}>
        <input 
          type="radio"
          name={props.name}
          value={n.val}
          checked={n.val === props.value}
          onChange={props.onChange}
        />
        <img src={n.img} />
      </label>
    ))}
  </div>
);

https://jsfiddle.net/jt2ybfrq/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы