gpt4 book ai didi

javascript - 将数组对象渲染到 FlatList React Native 中

转载 作者:行者123 更新时间:2023-11-28 16:57:22 26 4
gpt4 key购买 nike

我通过 API 从 axios 获取数据,但是当我渲染它的数据时,它会显示空白模板。因此,如果我犯了任何错误,请告诉我。我用 api 响应粘贴了我的代码。谢谢

console.log => 响应.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 中使用 ({item})。

其次,您将 async/await 与 then block 混合在一起。在这种情况下,不需要异步/等待。

所以你的代码必须是:

export default class HomeScreen extends Component {
constructor() {
super();
this.state = {
itemList: []
};
}

componentDidMount() {
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>
);
}
}

如果您仍然遇到问题,请查看此示例:

https://snack.expo.io/@suleymansah/c0e4e5

关于javascript - 将数组对象渲染到 FlatList React Native 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58743518/

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