React native React本机领域数据未持久化

React native React本机领域数据未持久化,react-native,realm,React Native,Realm,我正在使用realm.write,但是我的default.realm文件没有更新。我还在我的模式中添加了另一个对象,我可以在开发React原生应用程序时使用它,但是default.realm文件没有更新以包含这个新对象 我可以通过在中打开default.realm来确认它没有被保存。另外,在今天早上打开我的mac(昨晚关机后)并运行我的React原生应用程序后,当我试图访问它时,数据不在我的领域中 示例代码: #queries.js import Realm from 'realm' // D

我正在使用
realm.write
,但是我的
default.realm
文件没有更新。我还在我的模式中添加了另一个对象,我可以在开发React原生应用程序时使用它,但是
default.realm
文件没有更新以包含这个新对象

我可以通过在中打开
default.realm
来确认它没有被保存。另外,在今天早上打开我的mac(昨晚关机后)并运行我的React原生应用程序后,当我试图访问它时,数据不在我的领域中

示例代码:

#queries.js
import Realm from 'realm'

// Define your models and their properties
class Car {}
Car.schema = {
  name: 'Car',
  primaryKey: 'id',
  properties: {
    id: 'int',
    make:  'string',
    model: {type: 'string', optional: true}
  }
}

class Person {}
Person.schema = {
  name: 'Person',
  properties: {
    id: 'int',
    name: 'string'
  }
}

// Get the default Realm with support for our objects
let realm = new Realm({schema: [Car, Person], schemaVersion: 3});

class Queries {
  async syncCars()
  {
    try {
      let responsePromise = await fetch(`http://api.localhost.com:3000/v1/cars?auth_token=xxx`).catch(function(error) {
        console.log('There has been a problem with your fetch operation: ' + error.message);
        });
      let responseJson = await responsePromise.json();
      realm.write(() => {
         responseJson.forEach((values) => {
            realm.create('Car', values, true);
         });
      });
    }
      catch(error) {
        console.log("error " + error);
    }
  }
}

export default new Queries
在我的组件代码中,我有:

import Queries from './queries'
await Queries.syncCars();

正如克里斯蒂安·杜邦(Kristian Dupont)在上面的评论中指出的那样,我看错了文件


接下来,我在Chrome调试器控制台中使用了
realm.path
,并在包含
/Library/Developer/CoreSimulator/Devices/
的路径中找到了正确的
default.realm
。我不知道为什么OSX finder找不到这个文件。我不确定为什么在我的React Native目录中也创建了一个
default.realm
文件,但后来我删除了这个文件以避免混淆,并且没有进一步的问题。

我觉得你的代码很好。我假设您已尝试从
responsePromise.json()
记录结果,以确保您实际调用的是
realm.create()
?我已详细介绍了代码以确保这一点。我应该补充的是,数据是正确创建/存储的(不是在default.realm中,而是在内存中???),我可以通过
realm.objects('Car')
获得它。我刚刚搜索了我的计算机,没有其他领域文件(除了
sync\u metadata.realm
)。如果我停止并启动iOS模拟器,它甚至会持续存在。重申一下,
default.realm
在所有这些之后都不会更新。在数据最终丢失之前,我不确定数据存储在哪里。对于Realm,没有“内存中”这样的东西——当事务完成时,每一次写入都会立即保存到磁盘,因此看起来您查看的文件是错误的。您确定找到了正确的文件吗?有关在哪里可以找到它的更多信息,请查看。谢谢!你说得对。我使用了
realm.path
并在包含
/Library/Developer/CoreSimulator/Devices/
的路径中找到了另一个
default.realm
。我不知道为什么OSX finder找不到这个文件。你知道为什么在我的React原生目录中也创建了一个
默认.realm
?它是模式的旧版本,所以可能是在我添加模式版本时创建的?我能删除这个旧版本吗?嗯,我想不出为什么会有这样一个文件。你有没有开玩笑地运行单元测试?