在我的React Native应用程序中,我具有无限滚动(FlatList),并且需要能够搜索特定项目。现在我遇到的问题是我有一个onEndReached事件,该事件将加载更多如下所示的数据:
select . . . -- whatever columns you want
from (select t1.*,
row_number() over (partition by name order by id desc) as seqnum
from table1 t1
) t1 join
table2 t2
on t2.name2 = t1.name and t1.seqnum = 1;
发生API调用,我的Redux状态被更新为订单,然后这些订单通过useEffect钩子添加到我的FlatList中,该钩子取决于Redux状态中的项目:
onEndReached={() => {
props.fetchOrders('', offset, 10);
setOffset(offset + 10);
}}
现在FlatList的标头组件中应该有一个SearchBar,我可以在其中搜索触发API调用的特定项,然后该API调用将更新Redux状态,然后再触发我的useEffect钩子并更新FlatList中的项。问题是,使用我当前的useEffect钩子,我的项目仅被追加到FlatList而不是覆盖它。是否有解决方案,或者我的useEffect方法不适合我的需要?