javascript - 我如何使用平面列表返回对象列表?
问题描述
我是学习 react-native 的新手,我正在尝试获取一个 API,该 API 将返回对象列表。
我设置使用状态如下所示
const [DATA, setDATA] = useState([])
我将获取一个 API 并从服务器获取数据并将它们放入数据属性中。
const discountdetail = ()=> {
fetch(`https://example/discount` ,{
method: "GET",
headers: {Authorization: localStorage.getItem('tokenType')+ ' ' +localStorage.getItem('token')}})
.then(res=>res.json())
.then(res=>{
setDATA(res)
console.log(item)
})
})
}
return(
.....
.....
<FlatList
data={DATA}
renderItem={({item})=>{
<View style={styles.item}>
<Text style={styles.title}>{item.name}</Text>
</View>
}}
keyExtractor={(item, index) => index.toString()}
// extraData={selectedId}
style={{marginVertical: 25,}}
/>
)
[{"id": 1, "name": "ham burger", "value": "30%"}, {"id": 2, "name": "Cheese burger", "value": "50%"}]
[{"id": 1, "name": "ham burger", "value": "30%"}, {"id": 2, "name": "Cheese burger", "value": "50%"}]
[{"id": 1, "name": "ham burger", "value": "30%"}, {"id": 2, "name": "Cheese burger", "value": "50%"}]
[{"id": 1, "name": "ham burger", "value": "30%"}, {"id": 2, "name": "Cheese burger", "value": "50%"}]
[{"id": 1, "name": "ham burger", "value": "30%"}, {"id": 2, "name": "Cheese burger", "value": "50%"}]
它进入一个无限循环。似乎我需要使用异步方法,但我很难实现它。请给我一个提示来解决它。
解决方案
您需要在每个地图迭代中将对象添加到您的DATA
数组中。所以你可以使用扩展运算符或 unshift()。对于这个例子,我更喜欢扩展运算符。
const discountdetail = ()=> {
fetch(`https://example/discount` ,{
method: "GET",
headers: {Authorization: localStorage.getItem('tokenType')+ ' ' +localStorage.getItem('token')}})
.then(res=>res.json())
.then(res=>{
res.map(function(item){
setDATA([{name: item.name,value: item.value,}, ...DATA])
console.log(item)
})
})
console.log("data after map:" ,DATA);
}
推荐阅读
- c++ - bazel 中的错误“名称‘new_local_repository’未定义”
- mysql - 在 spark 2.x 中,除了使用 DF.write.mode().jdbc().....,如何将 Dataframe 数据写入 mysql
- python - 如何将系列与数据框合并,同时保留双方的数据
- python - scipy ndimage 没有属性过滤器?
- c# - 控制器中特定“异步”操作的 Autofac 过滤器不起作用
- julia - Julia 的累积集成选项
- c# - 如何访问表单的位置属性?
- c# - 使用 MVVMLight.Messaging 在视图模型之间进行消息传递时绑定不更新
- java - 如何通过android中的反射来识别经过身份验证的手指的存储ID
- python - 在带有 CSV 和 DateTime 的 HTML 页面上使用 Bokeh 将 ('Figure id ='1001'...) 显示为输出