CRUD - React Native SDK
項目一覧
RealmProvider
内では、 useRealm()
フックを使用して Realm にアクセスできます。 次に、 Realm.write()メソッドを使用して Realm オブジェクトを作成できます トランザクション ブロック。
書込みトランザクション (write transaction)内のすべての操作は アトミック です 。書込みトランザクション ( 書込みトランザクション (write transaction) ) のいずれかの操作が失敗すると、トランザクション全体が失敗します邦土はエラーをスローし、トランザクション ブロックからの変更は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 は、操作が失敗した場合、または無効な場合にトランザクションをキャンセルします。