Я создаю приложение ToDo List в React.
В компоненте формы я поставил флажок. Если флажок установлен и форма отправлена, я хочу отобразить слово «Важно» в компоненте «Элемент».
Прямо сейчас, когда проверено, он обновляет состояние в компоненте приложения. Но как я могу сообщить компоненту Item, что флажок установлен?
class App extends React.Component {
state = { defaultList: todo, checked: false }
onSubmit = (task) => {
this.state.defaultList.push({task});
this.setState(todo);
}
render() {
return (
<div>
<Form
onSubmit = {this.onSubmit}
checkCheckBox = {this.handleCheckBox}
/>
<List
lists = {this.state.defaultList}
/>
</div>
);
}
}
class Form extends React.Component {
onFormSubmit = (event) => {
event.preventDefault();
this.props.onSubmit(this.refs.userInput.value);
this.refs.userInput.value = "";
}
handleCheckClick = () => {
this.props.setState({ checked: !this.props.state.checked });
}
render() {
return (
<div>
<form onSubmit={this.onFormSubmit}>
<div>
<label>Task</label>
<input ref="userInput" />
<p className="warning"></p>
</div>
<div>
<input
type="checkbox"
checkCheckBox={this.handleCheckClick}
onChange={this.handleCheckClick}
/>
<label>Important</label>
</div>
<button type="submit">ADD</button>
</form>
</div>
);
}
}
const Item = ({task, priority, checkChecked}) => {
return (
<ul>
<li><b>{task}</b></li>
<li>
{checkChecked && <span>{priority}</span>} // Write a if statement here
</li>
<li>Delete</li>
</ul>
);
}