Пишу todo приложение, сначала реализовывал простой механизм туду листа с записью текста в массив. Однако сейчас я решил расширить функционал и хочу, чтобы был массив объектов.
this.state = {
todoList: [{
key: 0,
text: '',
done: false
}]
}
Как переписать эти строки так, чтобы они создавали объект в массиве с текстом из инпута?
handleSubmit = (e) => {
if (e.keyCode === 13 && e.target.value !== '') {
console.log('success');
const { value } = e.target;
this.setState(prevState => ({
todoValue: [...prevState.todoValue, value]
}));
e.target.value = '';
}
}
Привожу весь код:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
todoValue: []
};
}
render() {
return (
<div className="body-container">
<h1>To Do List</h1>
<input placeholder="Введите заметку" type="text" onKeyDown={this.handleSubmit}/>
<input type="button" value="Очистить список" className="resetBtn" onClick={this.handleReset}/>
<AlertSelect />
<hr />
<ul>
{this.state.todoValue.map((text, index) => (
<Li click={this.handleClick} key={index} text={text}/>
))}
</ul>
</div>
)
}
handleReset = () => {
this.setState({
todoValue: []
})
}
handleSubmit = (e) => {
if (e.keyCode === 13 && e.target.value !== '') {
console.log('success');
const { value } = e.target;
this.setState(prevState => ({
todoValue: [...prevState.todoValue, value]
}));
e.target.value = '';
}
}
}