包含另一个异步函数的函数不会返回到主函数

时间:2019-01-08 11:02:23

标签: javascript react-native

我有一个函数renderMe(),等待另一个函数async fetchingTransactions()返回,该函数又将返回到主渲染函数。不幸的是,异步fetchintransactions返回一个数组,但renderMe()无法利用它返回。

我想做的是,因为它的异步fetchingtransactions是一个异步函数,所以我尝试使用await fetchingtransactions和.then来获取数组,但是主要的render函数说我正在返回一个不能被渲染。

async fetchingTransactions(){
 return '10'
}

renderMe(){
 this.fetchingtransactions().then((val) => {
 return(
  <View>
   <Text>Number is {val}</Text>
 </View>
 )
})
}

render(){
 return(
  <View>
   {this.renderMe()}
 </View>
 )
} 

我希望结果是一个带有文本的视图:“数字为10”。这只是一个示例,我将在async函数中使用真正的await fetch函数,但以下代码是其基础。

1 个答案:

答案 0 :(得分:0)

  1. renderMe()没有return语句,因此它返回undefined
  2. 您可以返回承诺,但是this.renderMe()会给您一个承诺,而不是<View>元素

从组件的状态渲染组件中的数据。

render(){
 if (this.state.val !== undefined) {
  return(
   <View>
    <View>
     <Text>Number is {this.state.val}</Text>
    </View>
   </View>
  );
 } else {
   return something else;
 }
} 

呼叫fetchingtransactionsthen 更新状态