我有一个包含许多项目的平面列表。是否可以将每个X项目分解为其中包含广告等其他组件?我在官方文档中找不到它。这是我的公寓清单:
<FlatList
ListFooterComponent={this.renderFooter}
removeClippedSubviews={true}
data={this.state._data}
renderItem={({item}) => {
return (
<View>
...
{item.something}
...
</View>
);
}}
keyExtractor={(item, index) => index}
/>
答案 0 :(得分:0)
据我所知,FlatList
没有构建此类功能。
但是,执行此操作的一种方法是将广告添加到传递到data
的{{1}}并修改FlatList
功能以便也能够呈现它们。
E.g。以下代码段将采用一系列内容和一系列广告,并在每两个元素后添加一个添加:
renderItem
然后,如果项目为1,您可以修改const ads = [...]; // array of ads
const content = [...]; // array of content
const alternate = 2;
const data = content.reduce((acc, curr, i) => {
if ((i + 1) % alternate === 0) {
const adIndex = Math.floor(i / alternate) % ads.length;
return [...acc, curr, {...ads[adIndex], isAdd: true }];
}
return [...acc, curr];
}, []);
函数以呈现添加,例如
renderItem