| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 
 | import React, { Component } from 'react';
 import './App.css';
 import Person from './Person/Person';
 
 class App extends Component {
 state = {
 user:[{id:1,name:"张三",age: "21"},
 {id:2,name:"李四",age: "22"},
 {id:3,name:"王二麻子",age: "23"}],
 showhide: false,
 }
 
 toggle = () =>{
 this.setState({
 showhide: !this.state.showhide
 });
 }
 
 changeAge = (event,id) =>{
 const personIndex = this.state.user.findIndex(p=> {
 return id===p.id
 })
 const person = {...this.state.user[personIndex]};
 person.age = event.target.value;
 const persons = [...this.state.user];
 persons[personIndex] = person;
 this.setState({
 user: persons
 });
 }
 
 
 render() {
 let person = null;
 if( this.state.showhide ){
 person = (
 <div>
 
 {
 this.state.user.map((person,index) => {
 return <Person
 name={person.name}
 age={person.age}
 key={person.id}
 changeAge={(event)=>this.changeAge(event,person.id)}>
 </Person>
 })
 
 }
 
 </div>
 )
 }
 
 return (
 <div className="App">
 <button onClick={this.toggle}>切换</button>
 {person}
 </div>
 );
 }
 }
 
 export default App;
 
 |