【发布时间】:2023-04-07 06:50:02
【问题描述】:
我在 ScrollView 中运行一个循环,但没有明显的原因它不滚动。我已经阅读了他们设置 flex:1 或 flexGrow:1 的其他帖子,我尝试过但它仍然不起作用。
我正在使用 expo 在我的 android 设备上运行应用程序。
fooditems.js
import React from "react";
import { View, Text, StyleSheet, ScrollView } from "react-native";
import { Divider, Image } from "react-native-elements";
const foods = [
{
title: "chicken",
description:
"Lorem ipsum dolor sit amet consectetur, recusandae error amet cum doloremque mollitia hic, porro autem qui libero fugit atque.",
image:
"some image link",
price: "$ 10.99",
},
{
title: "barbecued chicken",
description:
"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Eaque quis quam architecto. ",
image:
"some image link",
price: "$ 14.99",
},
{
title: "barbecued chicken",
description:
"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Eaque quis quam architecto. ",
image:
"some image link",
price: "$ 14.99",
},
];
export default function MenuItems() {
return (
<ScrollView>
{foods.map((food, index) => (
<View key={index}>
<View style={styles.menuItemStyle}>
<FoodInfo food={food} />
<FoodImage food={food} />
</View>
<Divider width={0.5} />
</View>
))}
</ScrollView>
);
}
const styles = StyleSheet.create({
menuItemStyle: {
flexDirection: "row",
justifyContent: "space-between",
margin: 20,
},
titleStyle: {
fontSize: 19,
fontWeight: "600",
},
});
我不太清楚为什么会这样,但在 ios 上似乎没有这样的问题。
编辑:与 FlatList 相同的代码,但它仍然不会滚动。
export default function MenuItems() {
const renderItem = ({ item }) => (
<View>
<View style={styles.menuItemStyle}>
<FoodInfo food={item} />
<FoodImage food={item} />
</View>
<Divider
width={0.5}
orientation="vertical"
style={{ marginHorizontal: 20 }}
/>
</View>
);
return (
<View>
<FlatList
data={foods}
renderItem={renderItem}
keyExtractor={(item) => item.id}
/>
</View>
);
}
const styles = StyleSheet.create({
menuItemStyle: {
flexDirection: "row",
justifyContent: "space-between",
margin: 20,
},
titleStyle: {
fontSize: 19,
fontWeight: "600",
},
});
const FoodInfo = (props) => (
<View style={{ width: 240, justifyContent: "space-between" }}>
<Text style={styles.titleStyle}>{props.food.title}</Text>
<Text>{props.food.description}</Text>
<Text>{props.food.price}</Text>
</View>
);
const FoodImage = (props) => (
<View>
<Image
source={{ uri: props.food.image }}
style={{ width: 100, height: 100, borderRadius: 9 }}
/>
</View>
);
【问题讨论】:
-
尝试使用比您所做的更有效和更好的平面列表。
标签: reactjs react-native