gpt4 book ai didi

javascript - React Native 从异步 componentDidMount 获取初始状态

转载 作者:行者123 更新时间:2023-11-29 14:36:05 25 4
gpt4 key购买 nike

我想从已从 componenDidMount 调用的异步函数向 render() 显示状态值,但在第一个执行组件中它返回未定义,第二次尝试它显示正确的数据

这是我的状态 this.state.userData

我的问题是,render() 和 componentDidMount() 之间的优先处理函数是什么?

这是我的代码

componentDidMount: function(){
store.get('userData').then((val) => {
if(typeof val != 'undefined'){
this.setState({'userData':val});
}
}).done();
},
render: function() {
return(
<View>
<Text>{this.state.userData}</Text> // displaying undefined
</View>
);
}

最佳答案

我不确定你在问什么。

据我了解:您想在调用 render() 之前执行一个函数来设置数据。在那种情况下:看看生命周期方法 -> link .它很好地解释了您可以在调用 render 之前使用 componentWillMount() 。 enter image description here

但是:这并不能保证您在调用渲染之前拥有您的数据。我建议您设置一个额外的状态变量来了解异步调用何时完成,而在此之前只需调用一个加载微调器。

类似于:

constructor(props){
super(props);
this.state={
loading: true
}
}

在你的函数中:

this.setState({userData:val, loading: false});

渲染:

render() {
if(this.state.loading){
return( <ActivityIndicator size='large' style={{height:80}} />
}
else{
return(
<View>
<Text>{this.state.userData}</Text> // displaying undefined
</View>
);
}

(应该只给出一个想法 - 代码是即兴创作的..但应该解决未定义的问题)玩得开心

关于javascript - React Native 从异步 componentDidMount 获取初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190285/

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