react-native - Algolia 和 React Native FlatList ListHeaderComponent
问题描述
我将一个 Algolia 连接的组件放在 FlatList 的标题中,就好像它进入了无限循环的查询。connectInfiniteHits 不断运行。
如果您想在命中列表的标题中放置一些简单的过滤器,这真的很烦人。
我的设置是这样的:
我有一个由 connectInfiniteHits HOC 包装的 FlatList。ListHeaderComponent 包含一个由 connectRefinementList HOC 包装的组件。connectSearchBox HOC 也会出现同样的问题。
有没有人看到这个并找到解决方案?
解决方案
我设法使它与这些行一起工作:
const RefinementList = connectRefinementList(({ items, refine }) => (
<View>
{items.map(item => (
<TouchableOpacity key={item.label} onPress={() => refine(item.value)}>
<Text style={{ fontWeight: item.isRefined ? '600' : 'normal' }}>
{item.label}
</Text>
</TouchableOpacity>
))}
</View>
));
const InfiniteHits = connectInfiniteHits(({ hits, hasMore, refine }) => (
<FlatList
data={hits}
keyExtractor={item => item.objectID}
onEndReached={() => hasMore && refine()}
ListHeaderComponent={<RefinementList attribute="brand" />}
renderItem={({ item }) => (
<View>
<Text>{JSON.stringify(item).slice(0, 100)}</Text>
</View>
)}
/>
));
请注意,我没有使用确实中断的功能版本。
推荐阅读
- javascript - 如何在reactjs中将布尔状态值false返回给父级
- apache-kafka - 在生产环境中运行 AWS MSK 的主要痛点是什么?
- powershell - 当 MSI 失败并显示“无法连接到服务器。错误:0x80070005”时如何升级 Azure CLI
- ios - 找不到具有指定主机名的服务器。加载页面时出错。条纹,Firebase 后端
- python - 使子图正常工作的问题
- matplotlib - 从虚拟机输出python图表到主机
- javascript - extjs 表单元素中的 Extjs 组合框在禁用时未灰显
- python - 使用 python 包导入带有 anaconda 的 opencv
- javascript - 将 React TS 接口转换为 React JS
- regex - .htaccess mod_rewrite 在组为空时跳过捕获组