【发布时间】:2020-03-03 17:25:50
【问题描述】:
我通过我的 API 从 axios 获取数据,但是当我渲染它的数据时,它会显示空白模板。如果我做错了什么,请告诉我。我用 api 响应粘贴了我的代码。 谢谢
console.log => response.data
Data Array [
Object {
"ID": 2466,
"ItemName": "WWE2K20"
}
]
我的组件
import React, { Component } from 'react';
import { Container, Header, Content, Card, CardItem, Body, Text } from 'native-base';
import { View, StyleSheet, FlatList, Image } from 'react-native';
import axios from 'axios';
export default class HomeScreen extends Component {
constructor() {
super()
this.state = {
itemList: []
}
}
async componentDidMount() {
await axios.get('myapiuri')
.then((response) => {
this.setState({
itemList: response.data
});
console.log("Data", this.state.itemList)
})
.catch(error=>console.log(error))
}
render() {
return (
<Container>
<Content>
<FlatList
data={this.state.itemList}
renderItem={(item) => {
return(
<Text>{item.ItemName}</Text>
);
}}
keyExtractor={(item) => item.ID}
/>
</Content>
</Container>
);
}
}
【问题讨论】:
-
我认为 renderItem 获取了一个作为参数传递的对象: renderItem={({item}) => { return(
{item.ItemName} ); }} -
@MuhammedB.Aydemir 不工作。 :(
-
请使用
{JSON.stringify(item)} 进行调试,如果不显示数据,则响应可能为空或格式错误 -
您能分享 API url 或尝试使用数据的静态常量吗?另外请不要指望
console.log("Data", this.state.itemList)显示状态,因为 setState 是异步函数,甚至在实际设置状态之前就可以执行下一行。
标签: javascript react-native axios react-native-flatlist native-base