#reactjs
Вопрос:
Проблема в обработчике событий onchange. Вы можете увидеть вывод этого кода на втором фото. Уже 8 раз событие срабатывало без изменения какого-либо флажка. Выход из этого кода здесь, когда я использовал функцию возврата в обработчике и нажал на любой флажок, он работал ожидаемо ?????
Вы можете увидеть только одно запущенное событие . в чем причина этого ???
Ответ №1:
Для правильной работы вам необходимо использовать тег ввода ниже
<input onChange={()=>handler()} type="checkbox">
или
<input onChange={handler} type="checkbox">
Если вы используете onChange={обработчик ()}, то вы вызываете метод обработчика при каждом рендеринге.
Ответ №2:
Просто проходи onChange={handler}
и не onChange={handler()}
надо . Это относится и к другим аналогичным функциям, таким как <button onClick={handleClick} />
.
Поскольку здесь вы используете onChange, и вам потребуется событие для onChange, вот что вам нужно сделать
<input onChange={(event)=>handler(event)} />
const handler = (event) => { ...//use the event here }