首页 文章

React Native Realm项目结构

提问于
浏览
1

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

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

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

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

  • 最初当app加载组件mount时,调用所有重要的异步任务,并在需要的地方调用其余任务 .

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

1 回答

  • 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(()=> {})

    希望它的帮助:)

相关问题