概要
ReactNative
とTypescript
のプロジェクトにローカルDBとしてRealm
をインストール・使用する際のメモ。
環境は以下の通り。
- node @10.15.0
- react-native @0.61.5
- typescript @3.5.3
インストール
node
のバージョンが10.X
系にする必要がある。
install --save realm
※react-native
のバージョンが0.59
以下の場合は要link
iOSの場合
要CocoaPods
cd ios
pod install
実装
import Realm from 'realm'
// スキーマ名
const HOGE_SCHEMA_NAME : string = 'HOGE';
// スキーマ定義
const HOGE_SCHEMA : Realm.ObjectSchema = {
// スキーマ名
name : HOGE_SCHEMA_NAME ,
// 主キー(省略可)
primaryKey : 'prop1',
// プロパティ
properties: {
// 型のみ指定
prop1 : 'int',
// 型と初期値を指定
prop2 : { type : 'string', default : 'hoge' },
}
}
// データIF
interface Hoge {
prop1 : number,
prop2 : string,
}
// DB操作開始
Realm.open({
schema : [HOGE_SCHEMA]
}).then((realm : Realm) => {
// write()でトランザクションを開始する
realm.write(() => {
// primaryKeyを指定しているならcreate()はupsertとして働かせることもできる(その場合は第3引数にtrue)を渡す
realm.create(HOGE_SCHEMA_NAME , { prop1: 0, prop2 : 'test' });
// 削除はdelete()もしくはdeleteAll()
});
// objects(schemaName : string)でデータを取得
const datas : Realm.Results<Hoge> = realm.objects(HOGE_SCHEMA_NAME);
});