Удалите () =>
из задания onChange
для быстрого исправления.
Почему
Вы объявляете анонимную встроенную функцию, но эта функция ничего не вызывает (отсутствует ()
синтаксис для вызова функции). onChange
принимает ссылку на функцию. Когда вы даете ему встроенную функцию, она будет вызывать эту функцию. Другой вариант - передать ему только функцию ссылка из handleRowSelectionCheckboxClick
, а затем эта функция будет вызываться при изменении вместо посредника анонимной функции.
Итак, у вас есть два варианта:
onChange={handleRowSelectionCheckboxClick} // Just the reference
OR
onChange={(e) => handleRowSelectionCheckboxClick(e)} // New inline function that calls your function
Второй способ в большинстве случаев не нужен. Первый вариант предпочтительнее, если вам не нужно передавать специальные параметры. Вот пример того, как это может быть полезно:
onChange={(e) => handleRowSelectionCheckboxClick(e, id)}
В вашей песочнице вы сопоставляете элементы, и каждый из них получает обработчик изменений. Чтобы обрабатывать их отдельно в обработчике, вы можете передать дополнительную переменную функции, как указано выше.
Например, я заставил вашу песочницу работать, изменив обработчик и назначив ему:
const handleRowSelectionCheckboxClick = (event, idOfClickedRow) => {
...
onChange={(e) => handleRowSelectionCheckboxClick(e, row.id)}