1
我做了一個簡單的反應,我在哪裏通過一個數組,它是我的國家內部產生的子組件的應用程序:兒童不更新時,通過陣列產生反應
School.js:
import React from 'react';
import Person from './Person';
export default class School extends React.Component {
constructor() {
super();
this.state = {
persons: [
{id: 0, name: "person0"},
{id: 1, name: "person1"},
{id: 2, name: "person2"},
{id: 3, name: "person3"},
{id: 4, name: "person4"},
{id: 5, name: "person5"},
{id: 6, name: "person6"},
{id: 7, name: "person7"},
{id: 8, name: "person8"},
{id: 9, name: "person9"}
]
};
this.personList = this.state.persons.map((p) =>
<Person key={p.id} info={p} updateState={this.updateState.bind(this)} />
);
}
updateState(){
this.setState({
persons: [
{id: 0, name: "person000000000"},
{id: 1, name: "person100000000"},
{id: 2, name: "person200000000"},
{id: 3, name: "person300000000"},
{id: 4, name: "person400000000"},
{id: 5, name: "person500000000"},
{id: 6, name: "person600000000"},
{id: 7, name: "person700000000"},
{id: 8, name: "person800000000"},
{id: 9, name: "person900000000"}
]
});
console.log(this.state);
}
render() {
return (
<div>
<h1>All my persons:</h1>
<ul>
{this.personList}
</ul>
</div>
);
}
}
Person.js:
import React from 'react';
export default class Person extends React.Component {
constructor(){
super();
}
componentDidUpdate(){
console.log("updated");
}
render(){
return(
<p onClick={this.props.updateState}>I'm {this.props.info.name} and my id is {this.props.info.id}</p>
);
}
}
我的孩子的渲染,但是當我在我的孩子的一個更新通過的onClick狀態,狀態更新(你可以檢查它,當您在「updateState」的方法CONSOLE.LOG學校),但我的c hilds不會被重新提交。
這是怎麼回事,爲什麼?你能像這樣創建孩子嗎(通過狀態數組)?
謝謝!
這樣做的工作,謝謝! – JavascriptDeveloper