Обязательное поле не работает для динамически сгенерированного переключателя в React - PullRequest
0 голосов
/ 18 апреля 2020
const ExpenseForm = (props) => {
  const [selectedRadio, setSelectedRadio] = useState('')

  const handleSelectedRadio = (event) => setSelectedRadio(event.target.value) 

  const handleRadio = (event) => {
    props.handleRadio(event)
    handleSelectedRadio(event)
  }

return (

<Form onSubmit={props.addExpenseToInfoCard}>
  <Form.Control onChange={props.handleAmount} placeholder="Amount" required/>
  <Row>By whom</Row> 
  <Row>
  {
    props.members.map((member,index) => {
      return (
        <Col key={index}>
           <Form.Check type="radio" checked={selectedRadio === member.name} value={member.name || ''}
               label={member.name} onChange={(event) => handleRadio(event)} required/>
        </Col>
             )
        })
    }
  </Row>
  <Row>To whom</Row>
  <Row>
  {
    props.to_whom.map((member,index) => {
      return (
         <Col key={index}>
            <Form.Check type="checkbox" label={member.name} checked={member.isChecked} value={member.name || ''}
             onChange={(event) => props.handleCheckbox(event, index)} />
         </Col>
             )
        })
  }
 </Row>
 <center>
    <i className="material-icons" onClick={(event) => props.addExpenseModal(event)}>add_circle</i>
 </center>
 <center><Button title="add the expenses" type="submit">Add the expenses</Button></center>
</Form>
)
}

export default ExpenseForm

В компоненте ExpenseForm я динамически сгенерировал radio buttons с помощью функции карты массива . Все работает нормально. Но обязательное поле HTML 5 для этих переключателей не работает. Это позволяет мне отправить форму с пустыми значениями, даже если я добавил поле required.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...