find & findindex
nameChangedHandler = (event,id)=>{
const personIndex = this.state.persons.findIndex(p=>p.id===id);
const person = {
...this.state.persons[personIndex]
};
person.name=event.target.value;
const persons=[...this.state.persons];
persons[personIndex]=person;
this.setState({persons:persons});
}
person中加入changed并传入id
if(this.state.isshow){
person=(
<div>
{
this.state.persons.map((person,index)=>{
return <Person
name={person.name}
age={person.age}
click={this.deletePersonHandler.bind(this,index)}
key={person.id}
changed={(event)=>this.nameChangedHandler(event,person.id)}
/>
})
}
</div>
);
}else{
person=null;
}