使用'访问已失效或已删除的类型的对象'错误消息崩溃应用程序?

时间:2018-02-23 05:56:27

标签: javascript reactjs react-native realm

我使用Realm作为我的反应原生项目的数据库。

当我尝试从realmDB中删除对象时,我收到类似'访问类型为XXX的对象已被无效或已删除'的错误。 该对象被删除,但应用程序显示错误。

经过一些研究后,我发现了 isValid()属性作为解决方案。但是它如何与我的代码一起使用,这个问题背后的真正原因是什么?

DBScheme

export const deleteNewTemplateScheme = newTemplateObjectId => new Promise((resolve, reject) => {
Realm.open(NewTemplateScheme).then(realm => {
    realm.write(() => {
        let deletingNewTemplateObject = realm.objectForPrimaryKey(NEW_TEMPLATE_SCHEMA, newTemplateObjectId);
        realm.delete(deletingNewTemplateObject);
        resolve();
      });
  }).catch((error) => reject(error));;
});

撷取

deleteNewTemplateScheme(this.state.content.id).then(()=> {
Alert.alert('Deleted');
}).catch((error) => {
        Alert.alert('Failed to delete todoList: ', error);
      });

1 个答案:

答案 0 :(得分:1)

最后,我自己找到了解决方案。看来,如果将对象传递给导航或将新组件作为props传递,则删除此对象(当对象仍在导航堆栈或新组件中时),它将触发此错误。

我之前做的是创建一个新组件并将领域对象作为道具传递,现在我所做的是在父类Itself中创建相同的组件(因此,不需要传递道具)。所以现在工作正常。