event.target.value
- это не «переключаемое» значение флажка ввода, а event.target.checked
.
onDishReady = index => e => {
const { checked } = e.target;
this.setState(prevState => {
const newDishes = [...prevState.dishes]; // spread in previous state
newDishes[index].ready = checked; // update index
return { dishes: newDishes };
});
};
Визуализированный CustomInput
уменьшается до
<CustomInput
checked={dish.ready}
id={i}
label={<strong>DishReady</strong>}
onChange={this.onDishReady(i)}
type="checkbox"
/>
Нет необходимости передавать value
реквизит, поскольку он никогда не изменяется.
Примечание: Хотя обработчик onClick
действительно работает, семантически он не совсем корректен событие, вы хотите, чтобы logi c реагировал на изменение установленного значения флажка по сравнению с тем, как пользователь щелкает по его элементу.