This is the code from the parent:
_handleSelectedTodo(e) {
e.preventDefault();
this.setState({checkedIds: [...this.state.checkedIds, e.target.value]});
}
// render () { ...
<ul>
{todos.map((todo,todoIndex) => // The map method has default argument on second index, the index of the current todo in map execution. We use it so we do not have to use findIndex when we need to dispatch action that needs index of a specific todo
<Todo
key={todo.id}
{...todo} // pass all the todo property
onClick={() => onTodoClick(todo.id)}
onTrashClick={() => onDeleteClick(todoIndex)}
handleSelectedTodo = {this._handleSelectedTodo}
checked={Boolean(this.state.checkedIds.includes(todo.id))}
/>
)}
This is what I tried since assigning props on checkbox doesn't update on the Child Todo code, checked can be true or false that will depend on props:
componentWillMount() {
this.setState({ checked: this.props.checked })
}
// render() { ...
<input
checked={this.state.checked}
onChange={handleSelectedTodo}
type="checkbox"
value={id}
></input>
Checking on the checkbox updates the parent component state but the checkbox on child is not checked. help?