2016-05-11 97 views
1

我一直在尋找資源,用於在react-native中實現realm的最佳實踐。如何在react-native中實現realm.io - 組件和初始化

我的2個問題是這樣的:

首先,一遍又一遍的閱讀文檔,不瞭解有關初始化VS使用一個數據庫。我有一些const,並用他們的例子創建一個模式:

//用汽車和人模型初始化一個領域 let realm = new Realm({schema:[CarSchema,PersonSchema]});

這是否會在我使用的每個頁面(組件對象)上完成?創建模式的const是非常大的。

我試圖將它們移動到它們自己的文件,但不斷嘗試導入返回的對象(Realm對象)時出現錯誤。

每次應用程序使用Realm對象時,是否必須每次重新定義它?

謝謝!

回答

5

new Realm只能在應用程序生命週期中進行一次。第一次完成後,它將創建數據庫並定義模式。當您的應用程序再次啓動時,它將打開此數據庫並檢查模式是否匹配。所以這就像「開放數據庫」。 一旦打開,您就可以使用句柄(您稱爲realm)來引用數據庫並使用它執行所需的操作。 你可以在Github上的Example中看到這個。

+0

你讓我很快樂。謝謝 – Mark

2

RealmExample境界是在一個單獨的文件中定義,然後導入任何文件時,它被用作import realm from './realm'

的代碼做這個樣子:

import Realm from 'realm'; 

class Todo {} 
Todo.schema = { ... }; 

class TodoList {} 
TodoList.schema = { ... }; 

export default new Realm({schema: [Todo, TodoList]}); 
+0

我還不確定在這裏定義'Todo''和'TodoList'作爲類的價值。爲什麼不使用像'const TodoSchema = {...}'這樣的模式常量?我肯定錯過了什麼。 –