gpt4 book ai didi

reactjs - 从 React JS 中的 componentDidMount 获取

转载 作者:行者123 更新时间:2023-12-01 14:04:52 27 4
gpt4 key购买 nike

我有一个组件<BaseMap />和一条取线 fetchUser={this.fetchUser.bind(this)}我在BaseMap之后立即使用了它在渲染方法中(例如 <BaseMap fetchUser={this.fetchUser.bind(this)}/> )。

但是,有人建议我应该将其放入 componentDidMount反而。但我该怎么做呢?我不能只是复制fetchUser={this.fetchUser.bind(this)}进入componentDidMount .

最佳答案

据我了解,您的组件设置如下:

class Parent .... {
....
fetchUser(){
....
}

....
render(){
return (
...
<BaseMap fetchUser={this.fetchUser.bind(this)}/>
...
);
}
}

class BaseMap .... {
....
render(){
let user = this.props.fetchUser();
return (

<div> { ...use user here ... }</div>

);
}
}

如有错误,请指正。

建议您从 BaseMap 组件渲染方法中调用 fetchUser 并移至其 componentDidMount 方法。然后将用户存储在组件的状态中并从那里使用它。

class BaseMap .... {
constructor(props){
super(props);
this.state={user:null};
}

componentDidMount(){
let user = this.props.fetchUser();
this.setState({user:user});
}

render(){
return (
<div> {this.state.user?
...use user here ...
: "loading data"
}</div>
);
}
}

关于reactjs - 从 React JS 中的 componentDidMount 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46613160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com