[英]Wait to Display Text in React-Native Component
我有一个从api获取数据的组件,然后将其显示在屏幕上。 我想知道的是,如何延迟在api调用完成之前在屏幕上显示文本?
例如:
Your Balance is ____
网络通话解决后
Your Balance is 500
但是在呈现组件后立即显示"Your Balance is"
。
import React, { Component, PropTypes } from 'react'
import {StyleSheet, View, Text} from 'react-native'
export default class Main extends Component {
constructor(props) {
super(props);
this.state = {
accountBalance: ''
};
fetch('someURL', {method: "GET"})
.then((response) => response.json())
.then((responseData) => {
this.setState({
accountBalance: responseData.amount
})
})
.done();
}
render() {
return (
<View style={styles.container}>
<Text style={{color: '#FFF'}}> Your Account Balance is {this.state.accountBalance} </Text>
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 10,
paddingTop: 74,
backgroundColor: 'black'
}
})
在这种情况下,您可以做一些简单的事情,例如在没有余额的情况下返回null
:
render() {
return (
<View style={styles.container}>
{this.state.accountBalance ? (
<Text style={{color: '#FFF'}}> Your Account Balance is {this.state.accountBalance} </Text>
) : null}
</View>
)
}
您也可以使用单独的状态变量(例如this.state.balanceLoaded: false
来跟踪请求,并返回null
直到更改为止。 然后,您将在fetch
回调中将该值更新为true
。 这将解决返回值但伪造的问题 ,例如''
或0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.