javascript - 映射嵌套数组以在 React Native 中呈现
问题描述
我的项目中有一个嵌套数组对象。这是我拥有的数组:
const listItem = [
{name:'Patrick star',id:"1",costs:[{name:'Read Book'},{name:'Drink water'}]},
{name:'Gallileo',id:"2",costs:[{name:'Read Book'},{name:'Drink water'},,{name:'Walking'}]},
{name:'Einsten',id:"3",costs:[{name:'Read Book'},{name:'Drink water'}]},
{name:'Peterson',id:"4",costs:[{name:'Read Book'},{name:'Drink water'}]},
{name:'Schwarzenneger',id:"5",costs:[{name:'Read Book'},{name:'Drink water'}]},
{name:'Dostoyevsky',id:"6",costs:[{name:'Read Book'},{name:'Drink water'}]}
]
现在,我在我的项目中渲染它。名称显示正常,但我无法costs
通过映射添加。这是我所达到的:
<FlatList
style={{marginTop:10}}
data={listItem}
renderItem={({item})=>(
<View style={{justifyContent:'center',marginBottom:10}}>
<Text>{item.name}</Text>
{listItem.map((u,i) => {
return (
<Text>{u.costs[i].name}</Text> //this line throws error
)
})
}
</View>
)}
/>
我可能在映射上做错了什么。
解决方案
您必须映射成本而不是 listItem:
<FlatList
style={{marginTop:10}}
data={listItem}
renderItem={({item})=>(
<View style={{justifyContent:'center',marginBottom:10}}>
<Text>{item.name}</Text>
{item.costs.map(cost => {
return (
<Text>{cost.name}</Text>
)
})
}
</View>
)}
/>
推荐阅读
- angular - 根据剑道菜单中的服务数据在新选项卡中打开 url
- javascript - 无需单击按钮即可评估值的总和
- delphi - Delphi构造函数如何(继承Parent.Parent创建)或(调用Parent.Parent.Create)
- asp.net-core - LINUX 中 .NET 应用程序的时区名称
- c# - 在 Xamarin 移动应用程序中显示存储在 Azure 存储中的 Blob/照片
- node.js - 尝试在 Windows 10 上的 VS Code 调试中运行“npm run start”
- javascript - 如何在元素中选择数字内容并使用jquery或js添加逗号
- python - 为 django 管理 url 使用自定义模板
- firebase - 除非将电话号码添加为可选测试号码,否则无法使用电话号码登录
- javascript - 如果有新版本,如何强制 SPA 客户端硬刷新?