почему мне нужно передать функцию в инструкции return в обработчике события onChange

#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 }