两个Flatlist使用的是同一个数据源,当其中一项的数据删除后,另一页面中Flatlist会报Accessing object of type which has been invalidated or deleted



  • 请问有哪位大佬知道这种情况如何处理吗?

    我是在<react-native-scrollable-tab-view>中放置了两个页面,两个页面中分别有一个FlatList,它们使用的都是数据库中的数据,但显示和排序不同而已。

    在其中一项进行了删除操作,另一项就会直接报错,
    当前列表删除后刷新列表就可以,而另一个列表还刷新也一样报错:
    Accessing object of type which has been invalidated or deleted



  • 如果你的 FlatList 使用的数据源是两个不同的 List,比如 listDataA,和 listDataB,在更新 listDataA 的同时,也应该更新 listDataB,这个操作应该在删除之前。

    this.listDataA = listDataA.filter(it => it.id !== item.id);
    this.listDataB = listDataB.filter(it => it.id !== item.id);
    
    this.listAChanged += 1; // Mbox 
    this.listBChanged += 1; // Mobx
    
    ...
    this.db.delete(item);
    ...

登录后回复