2016-07-14 9 views
1

こんにちは私はReact Nativeに辞書アプリを作成しています。各単語の定義を保持するJSONブロブの配列を格納したいだけです。React Nativeに静的データと共通データを保存する

データをハードコードする必要がなく、コードがDRYになることを避けたいと思います。

サンプルJSONブロブ:それはあるように、このデータを格納するための最良の戦略は何

[ 
    { 
    "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 Nativeのライブラリもあります。

私の質問をお読みいただきありがとうございます。

答えて

1

あなたは次のスキーマでレルムを使用して記述しているものを行うことができます:あなたの辞書エントリのすべてとレルムファイルに事前、アプリとの同梱ができ

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]}); 

、あるいはあなたができましたこのファイルまたは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); 
}); 
+0

おかげでアリ。レルムファイルに通常のjsスクリプトをあらかじめ用意しておくことはできますか?たとえば、JSファイルにRealmライブラリが必要ですが、実行すればRealmファイルが出力されますか? –

+1

シミュレータで実行する場合は、RNアプリでファイルを準備してファイルを簡単にコピーすることができます。生成されたレルムファイルへのパスは次のようになります: 'console.log(realm.path)' – Ari

+0

ああ、甘い!再度、感謝します! –