【发布时间】:2019-07-16 15:42:22
【问题描述】:
我对 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>
)
}
}
【问题讨论】:
标签: arrays reactjs object rendering state