javascript - 使用 FlatList 的 React-Native for 循环给出错误
问题描述
我是编程新手。我想动态呈现列表。父组件 Navbar 具有食品类型类别的状态,如墨西哥、中国。每个 FoodTypes 都有各自的菜单
我喜欢先渲染 FoodType,然后在 FlatList 中渲染其各自的菜单。数据保存在导航栏组件中。我可以使用 FlatList 渲染 FoodType,但问题在于 for 循环逻辑。for 循环给了我错误。请看沙箱:
https://codesandbox.io/s/hungry-lamarr-p8mq3
相关代码如下(第 130-154 行),在菜单组件中
render() {
return (
<View className="container-fluid">
<Text> Here use Flatlist</Text>
for (let i = 0; i < this.props.Objs_Type.length; i++) {
<FlatList
data={this.props.Objs_Type}
renderItem={({item})=>
<Text>{item.FoodType[i]}</Text>
<Text>{item.Menu[i]}</Text>
}
keyExtractor={(item,index)=>item.id}
/>
};
</View>
)
}
解决方案
感谢大家的宝贵意见。帮助我学到了很多。如果有人感兴趣,下面是更正的代码
<View className="container-fluid">
<Text> Here use Flatlist</Text>
<FlatList
data={this.props.Objs_Type}
renderItem={({ item }) => (
<React.Fragment>
<Text>{item.FoodType}</Text>
{item.Menu.map(e => (
<Text>{e}</Text>
))}
</React.Fragment>
)}
keyExtractor={item => item.id}
/>
</View>
renderItem 如果你放两个标签,比如两个文本,它会自动迭代它。因此,就我而言,我在 Food_Type 中有两个项目,每个 Food_Type 中有 3 个菜单项。如果只对 Food_Type 和 Menu 分别使用两个 Text,它将首先打印 Chinese,然后是 Chinese 的数组 ofMenu。要垂直显示菜单,我必须使用 map 。
推荐阅读
- javascript - 打字稿私有只读与类 const 之外
- excel - 获取匹配值的行
- php - Ajax 调用自动完成 html 以插入到带有 innerHTML 的页面中。表格不起作用
- java - Spring Security 身份验证仅适用于一个用户名和密码
- javascript - 对条件 Array.sort() 的开玩笑覆盖
- javascript - 在javascript中如何获取json节点的遍历路径
- php - 问题打印 unicode 和阿拉伯字符
- c - 如何使用带有 netlink 套接字的 libnl 将设备连接到带有 WPA2 的 AP?
- python - 如何为pdf添加背景并在python中另存为图像
- sql - 自动增加列数?