在更新Child
组件的状态时,我需要更新父组件的状态( App.js ),GET
请求componentDidMount()
请求setPoints
1}}。
我尝试将函数Child
作为道具传递,但不幸的是,这不起作用。
这是我试过的:
class Child extends Component {
state = {
points: null
}
async componentDidMount() {
try {
const res = await axios.get(url);
const data = res.data;
this.setState({
points: data.points,
})
this.props.setPoints();
} catch (err) {
console.log('child', err);
}
}
render() {
return (
<div>
</div>
);
}
}
组件:
App
父组件(class App extends Component {
state = {
points: '',
}
setPoints() {
this.setState({
...this.state,
points: this.state.points
});
}
shouldComponentUpdate(nextState) {
if (this.state.points !== nextState.points) {
return true;
}
return false;
}
render() {
return (
<div className="App">
<Route exact path="/child" render={() => <Child setPoints={this.setPoints} />} />
</div>
);
}
}
):
async componentDidMount() {
try {
const res = await axios.get(url);
const data = res.data;
console.log(data.points);
this.props.setPoints(data.points);
} catch (err) {
console.log('child', err);
}
任何人都可以帮我这个吗?帮助将受到高度赞赏。
修改
我尝试了Joe Clay所写的内容,这很有道理,但我仍然遇到了错误。这是我更新的代码:
scipy
它记录了点的值,但由于某种原因,我得到:“无法读取未定义的属性'点'”。
答案 0 :(得分:1)
关于孩子:
this.props.setPoints(data.points)
父母:
setPoints(points) {
this.setState({
...this.state,
points
});
}
答案 1 :(得分:1)
考虑Parent Component中的数据值。我将通过将prop传递给在父级中执行setState的函数来更改数据的值,从而将值更改为所需的值。
为父级
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = workbook.createSheet();
HSSFSheet worksheet1 = workbook.createSheet("List of logins");
将handleChange函数作为prop组件传递给子组件。
子组件
class Parent extends React.Component{
constructor(props){
super(props);
this.state({
name:''
})
}
handleChange(value){
this.setState({name:value});
}
render(){
return (<Child handleChange={this.handleChange} />)
}
}
这会在父组件中将name的值设置为hello。