React Native Realm项目结构

时间:2017-11-06 12:39:34

标签: react-native realm

当您有多个要存储的webAPI方法和表时,在本机(项目结构)中实现领域的最佳方法是什么。

我正在做以下这是一种正确的方法吗?如果不善意建议或提供任何链接。

  1. 创建了一个模型文件夹 - 此文件夹中的每个js文件都有一个使用RealmObject扩展的模型类。

  2. 为异步任务创建了一个文件夹 - 此文件夹中的每个js文件调用web api并在Realm对象中写入数据。每个webapi函数都有一个sperate js文件。

  3. 最初当app加载组件挂载时,调用所有重要的异步任务,并在需要时调用其余任务。

  4. 这样做我无法自动更新领域中的数据,即:领域结果不是动态的,我们必须手动调用更改以显示更新的数据。

1 个答案:

答案 0 :(得分:1)

有可能的结构:

我建议你使用Real of Realm - > https://realm.io/

有可能的结构: realm.js

import * as RealmDB from 'realm';

class Passenger extends RealmDB.Object {}
Passenger.schema = {
name: 'Passenger',
primaryKey: 'id',
properties: {
  'id'                : 'string',
  'firstname'         : { type: 'string', optional: true },
  'lastname'          : { type: 'string', optional: true },
  'birthdate'         : { type: 'int',    optional: true },
  'email'             : { type: 'string', optional: true },
  'phone'             : { type: 'string', optional: true },
  'child'             : { type: 'linkingObjects', objectType: 'Child', property: 'passengers' }
}
};


class Child extends RealmDB.Object {}
Child.schema = {
 name: 'Child',
 primaryKey: 'id',
  properties: {
   'id'                  : 'string',
   'name'                : 'string',
   'parents_1'           : { type: 'linkingObjects', objectType: 'Passenger', property: 'child' }
  }
 };


const realmInstance = new RealmDB({
schema: [Passenger, Child],
});
export default realmInstance;

use.js

import realm from "./realm";
export default class use {

 static writeToRealm(){
  realm.write(() => {

  let passenger = realm.create('Passenger', {
  'id'            : "..."
  'firstname'     : "...",
  'lastname'      : "...",
  "..."
  })
 }

 static readPassengers(){
  const passengers = realm.objects('Passengers');
  return passengers // Be careful Realm use List instead of Array quite the same but not! 
 }
}

每次要在数据库中编写时都必须使用 realm.write(()=> {})

希望它有所帮助:)