【发布时间】:2021-07-20 07:56:37
【问题描述】:
我希望每行显示 3 个项目,并且希望根据屏幕本身调整它们的大小,我该怎么做?
我尝试将 justifyContent 赋予 flatlist columnWrapperStyle 道具,但结果显示很荒谬
const renderSearchItem = ({
item: { id, type, title, original_title, poster },
}) => (
<Item
id={id}
type={type}
title={title == null ? original_title : title}
poster={poster}
navigation={navigation}
style={{ width: 115, height: 175 }}
/>
);
<FlatList
data={data?.datas}
renderItem={renderSearchItem}
keyExtractor={(item, index) => index.toString()}
key={search}
numColumns={3}
onEndReachedThreshold={1}
onEndReached={() => {
fetchMore({
variables: {
search,
offset: data?.datas?.length + 18,
},
updateQuery: (
previousResult,
{ fetchMoreResult }
) => {
if (
!fetchMoreResult ||
fetchMoreResult?.datas?.length === 0
) {
return previousResult;
}
return {
datas: previousResult?.datas?.concat(
fetchMoreResult?.datas
),
};
},
});
}}
ListHeaderComponent={headerComponent()}
showsVerticalScrollIndicator={false}
/>
【问题讨论】:
-
尝试使用 width: 115, height: 175 with % like width: "30%" 例如
-
不幸的是这没有帮助:(
-
由于item组件是一张图片,我猜图片没有给出百分比宽度和高度。
标签: javascript reactjs react-native expo