【问题标题】:Storing static and common data in React Native在 React Native 中存储静态和通用数据
【发布时间】:2016-07-14 23:30:30
【问题描述】:

您好,我正在 React Native 中创建一个字典应用程序,我只想存储一个 JSON blob 数组,其中包含每个单词的定义。

我非常希望避免对数据进行硬编码并希望我的代码是 DRY!

示例 JSON blob:

[
  {
    "word": "triangle",
    "definition": "a plane figure with three straight sides and three angles.",
    "type": "noun"
  },
  {
    "word": "square",
    "definition": "a plane figure with four equal straight sides and four right angles.",
    "type": "noun"
  },
  {
    "word": "circle",
    "definition": "a round plane figure whose boundary (the circumference) consists of points equidistant from a fixed point (the center).",
    "type": "noun"
  }
]

存储这些数据的最佳策略是什么:

  1. 可由用户添加书签
  2. 干净且易于更改并与其他文件分开
  3. 我的 React 组件如何访问它

我认为关系数据库是最好的方法,但我很难弄清楚如何为数据库提供数据。以及 React Native 上的哪个库用于关系数据库。

感谢您阅读我的问题。

【问题讨论】:

    标签: javascript json database react-native realm


    【解决方案1】:

    您可以使用具有以下架构的 Realm 执行您所描述的操作:

    let EntrySchema = {
        name: 'Entry',
        primaryKey: 'word',
        properties: {
            word: 'string',
            definition: 'string',
            type: 'string'
        }
    };
    let BookmarkListsSchema = {
        name: 'BookmarkList',
        properties: {
            bookmarks: {type: 'list', objectType: 'Entry'}
        }
    };
    
    let realm = new Realm({schema: [EntrySchema, BookmarkListsSchema]});
    

    您可以使用所有字典条目预填充 Realm 文件并将其与您的应用程序捆绑在一起,或者您可以下载此文件或 JSON 并在启动应用程序时初始化您的数据库。

    创建/添加书签:

    // create your list once
    var bookmarkList;
    realm.write(() => {
        bookmarkList = realm.create('BookmarkList');
    });
    
    // add entry for 'triange' to bookmarks
    realm.write(() => {
        let triangeEntry = realm.objectForPrimaryKey('Entry', 'triangle');
        bookmarkList.bookmarks.push(triangleEntry);
    });
    

    【讨论】:

    • 谢谢阿里。我可以使用普通的 js 脚本预填充 Realm 文件吗?例如,我需要一个 JS 文件中的 Realm 库,一旦我运行它,它会输出一个 Realm 文件吗?
    • 如果您在模拟器上运行,您可以在您的 RN 应用程序中预置文件并轻松复制文件。您可以使用以下命令找出生成的领域文件的路径:console.log(realm.path)
    • 天哪!再次感谢!
    猜你喜欢
    • 2021-03-20
    • 2018-10-16
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2014-06-13
    • 2021-05-02
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多