React Native Realm数据未持久化

时间:2017-03-15 02:26:47

标签: react-native realm

我正在使用realm.write,但我的default.realm文件未更新。我还在我的架构中添加了另一个对象,我可以在开发我的React Native应用程序时使用它,但default.realm文件未更新为包含此新对象。

我可以通过在Realm Browser中打开default.realm来确认没有保存。此外,在今天早上关闭(昨晚关机后)并运行我的React Native应用程序之后,当我尝试访问它时,数据不在我的Realm中。

示例代码:

#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();

1 个答案:

答案 0 :(得分:0)

正如Kristian Dupont在上面的评论中指出的那样,我正在查看错误的文件。

关注this answer我在Chrome调试器控制台中使用了realm.path,并在包含default.realm的路径中找到了正确的/Library/Developer/CoreSimulator/Devices/。我不确定为什么OSX finder无法找到这个文件。我不确定为什么在我的React Native目录中也创建了default.realm文件,但我已经删除了这个文件以避免混淆并且没有其他问题。