在多个屏幕上打开领域时,应对本机错误

时间:2019-03-02 20:58:24

标签: reactjs react-native realm

我对在react-native中领域数据库的创建和使用有疑问。

我有两个屏幕,负责执行Crud,category.js和client.js等操作

category.js 中,我具有以下构造函数

constructor(props) {
    super(props);
    realm = new Realm({
        schema: [{ name: 'category', primaryKey: 'id', properties: { id: 'int', descricao: 'string', status: 'bool' } }]
    })
}

并且在 cliente.js 中,我有

constructor(props) {
    super(props);
    realm = new Realm({
        schema: [{ name: 'client', primaryKey: 'id', properties: { id: 'int', nome: 'string', cpf: 'string', celular: 'string', status: 'bool' } }]
    })
}

现在我有以下疑问。

使用这种模式时,我是否有一个数据库,其中包含表类别和客户端?

当我在client.js屏幕上并且想要转到category.js时,我被告知错误:已在当前线程上以不同的模式打开。

如何关闭或打开连接,以便可以在两个屏幕上使用该领域?

1 个答案:

答案 0 :(得分:1)

您没有在尝试创建新实例的新屏幕上打开RUNDA 1 Twoja kolej na zgadywanie! Próba nr 1: 0011 [0, 2, 0, 1, 0, 0, 0, 1, 0, 0] [2, 2, 0, 0, 0, 0, 0, 0, 0, 0] 1 1 0 0 。这就是为什么您遇到问题。您的应用程序中应该只有一个realm实例。

  1. 创建一个用于导入realm依赖项的文件。
  2. 在此文件中创建所需的所有架构。
  3. 创建一个realm实例并将其架构添加到其中
  4. 导出new Realm()的新实例。
  5. 使用您刚创建的realm实例代替在组件中使用realm

realm

realm.js

那么您应该可以通过以下方式导入它

import Realm from 'realm';

class Category extends Realm.Object {}
Category.schema = {
  name: 'category',
  primaryKey: 'id',
  properties: {
    id: 'int',
    descricao: 'string',
    status: 'bool'
  }
};

class Client extends Realm.Object {}
Client.schema = {
  name: 'client',
  primaryKey: 'id',
  properties: {
    id: 'int',
    nome: 'string',
    cpf: 'string',
    celular: 'string',
    status: 'bool'
  }
};

const RealmInstance = new Realm({ schema: [Category, Client] });
export default RealmInstance;

通过查看他们的example,您可以了解import realm from './path/to/realm.js' 的工作方式。