Docs Menu
Docs Home
/ /
Atlas Device SDK
/

CRUD - React Native SDK

項目一覧

  • トランザクションのライフサイクル

RealmProvider内では、 useRealm()フックを使用して Realm にアクセスできます。 次に、 Realm.write()メソッドを使用して Realm オブジェクトを作成できます トランザクション ブロック。

書込みトランザクション (write transaction) 内のすべての操作は 不可分 。書込みトランザクション (write transaction) のいずれかの操作が失敗すると、トランザクション全体が失敗します。Realm はエラーをスローし、トランザクション ブロックからの変更は Realm に適用されません。

すべての書込み (write) 操作は 書込みトランザクション (write transaction) 内で実行する必要があります。

const CreatePersonInput = () => {
const [name, setName] = useState('');
const realm = useRealm();
const handleAddPerson = () => {
realm.write(() => {
realm.create('Person', {_id: PERSON_ID, name: name, age: 25});
});
};
return (
<>
<TextInput value={name} onChangeText={setName} />
<Button
onPress={() => handleAddPerson()}
title='Add Person'
/>
</>
);
};

特定の Realm が一度に処理する書込みトランザクションは 1 つだけです。 書込みトランザクションを行うと、Realm はトランザクションをキューに追加します。 Realm は、各トランザクションを到着順に評価します。

トランザクションを処理した後、Realm はトランザクションをコミットまたはキャンセルします。

  • コミット後、Realm はトランザクション内のすべての操作を適用します。 適用されると、Realm はライブ クエリを自動的に更新します。 作成、変更、および削除されたオブジェクトをリスナーに通知します。

    • 同期を使用する場合、SDK は Atlas App Services に送信する変更もキューに入れます。 SDK は、ネットワークが利用可能な場合にこれらの変更を送信します。

    • コミット後、 useQueryまたはuseObjectによって返されたオブジェクトとコレクションは再レンダリングされ、関連する変更が含まれるようになります。

  • Realm does not apply any operations in a cancelled transaction. Realm は、操作が失敗した場合、または無効な場合にトランザクションをキャンセルします。

戻る

地理空間データ