Я новичок в React и пытаюсь выяснить, как изменить состояние моего объекта.Но когда я изменяю состояние в моем поле ввода, поле перерисовывается внизу.
Как сохранить поле ввода в том же месте, в котором оно отображается в первый раз.
class App extends Component {
state = {
persons: [{
id: 0,
name: ''
},{
id: 1,
name: ''
}]
}
changePersonNameHandler = event => {
const id = parseInt(event.target.id);
const newPersonName = event.target.value;
this.setState({
persons: [...this.state.persons.filter(i => i.id !== id),
{
id,
name: newPersonName,
}
]
})
}
render () {
const {persons} = this.state;
return (
<div>
<ul>
{persons.map((i, index) => (
<li key={i.id}>
<label>Name: </label>
<input id={i.id}
value={i.name}
onChange{this.changePersonNameHandler}/>
</li>
)
)}
</ul>
</div>
)
}
}