react-native - 我想将 API 数据放入我的 Text 元素中 ~ React Native
问题描述
我已经完成了 API 调用并将数据放入变量中。但现在我想在 TEXT 元素中显示它们。我的 API 数据
我的代码
function RenderServiceTicket(){
return (
<SafeAreaView>
<View>
<Text>{data.createdAt}</Text>
</View>
</SafeAreaView>
)}
我想得到“createdAt”:“2021-08-06 13:27:55”,
API 调用代码
const onRefresh = React.useCallback(async() => {
setServiceTData([]);
const deviceId = await AsyncStorage.getItem('@device_ID')
const sessionId = await AsyncStorage.getItem('@session_Id')
console.log('device ID: ',deviceId, 'session IDs: ', sessionId)
setRefreshing(true);
(async () => {
try{
const ServiceTicketData = await fetch(`${API_URL}/v1/serviceTicket`, {
method: 'GET',
headers: {
Accept: 'application/json',
'apiKey': 'asdkhjfgsed34e',
'deviceId': deviceId,
'sessionId': sessionId
},
})
const STData = await ServiceTicketData.json();
console.log("ST Data",STData);
setServiceTData(STData.data);
setRefreshing(false)
} catch (error) {
console.log(error);
}
})()
}, [refreshing]);
解决方案
根据我对您的代码的理解,我建议尝试这样的事情:
const [serviceTData, setServiceTData] = React.useState([]);
const onRefresh = React.useCallback(async() => {
const deviceId = await AsyncStorage.getItem('@device_ID');
const sessionId = await AsyncStorage.getItem('@session_Id');
console.log('device ID: ',deviceId, 'session IDs: ', sessionId);
setRefreshing(true);
(async () => {
try{
const ServiceTicketData = await fetch(`${API_URL}/v1/serviceTicket`, {
method: 'GET',
headers: {
Accept: 'application/json',
'apiKey': 'asdkhjfgsed34e',
'deviceId': deviceId,
'sessionId': sessionId
},
});
const STData = await ServiceTicketData.json();
console.log('ST Data',STData);
setServiceTData(STData.data);
setRefreshing(false);
} catch (error) {
console.log(error);
}
})();
}, [refreshing]);
const RenderServiceTicket = () => {
return (
<SafeAreaView>
<View style={{height: '50%', width: '50%'}}>
{serviceTData.length > 0 && <Text>{serviceTData.createdAt}</Text>} // at this point, you should get a black text, add some style
</View>
</SafeAreaView>
);
};
除此之外,我会对文本应用一些样式,对容器应用一些大小,以便显示元素。
如果它仍然不起作用,那么您应该查看处理异步函数的方式。
推荐阅读
- html - 如何使用 VBA 在网站中输入我的用户名
- python - 如何远程访问在 AWS EC2 上运行的 Python 烧瓶应用程序?
- gitlab - 使用 Gitlab API v4 从分支下载目录
- c# - 无法从程序集中加载任务工厂“CodeTaskFactory”,客户端未持有所需的权限
- javascript - 我正在尝试使用 JS 制作更新引擎,但我不知道我做错了什么
- java - 如何在 IntelliJ IDEA 中为 Maven Java 项目禁用 Kotlin 编译器?
- wordpress - 在已经有 Wordpress 主题的主页上添加内容
- java - 获取所有类参数及其名称?
- java - @Column 注释还不足以让 JPA 将一个驼峰式 Java 属性映射到数据库上的一个蛇形列吗?
- android-studio - 安装 android studio 时出现 Stacktrace.txt 错误