Dentro de un RealmProviderPuedes acceder a un reino con el gancho useRealm(). Luego, puedes crear objetos de reino usando un Bloque de transacciónRealm.write().
Todas las operaciones dentro de una transacción de escritura son atómicasSi falla una operación en la transacción de escritura, falla toda la transacción, Realm genera un error y no se aplican cambios del bloque de transacción al reino.
Cada operación de escritura debe ocurrir en una transacción de escritura.
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' /> </> ); };
Transaction Lifecycle
A given realm only processes one write transaction at a time. When you make a write transaction, the realm adds the transaction to a queue. The realm evaluates each transaction in the order it arrived.
Después de procesar una transacción, Realm la confirma o la cancela:
After a commit, the realm applies all operations in the transaction. Once applied, the realm automatically updates live queries. It notifies listeners of created, modified, and deleted objects.
When using Sync, the SDK also queues the changes to send to Atlas App Services. The SDK sends these changes when a network is available.
After a commit, objects and collections returned by
useQueryoruseObjectrerender to include relevant changes.
Realm no aplica ninguna operación en una transacción cancelada. Realm cancela una transacción si una operación falla o no es válida.