CRUD - React Native SDK
Nesta página
Dentro de um RealmProvider
, você pode acessar um Realm com o gancho useRealm()
. Em seguida, você pode criar objetos de Realm usando um Realm.write() bloqueio de transação.
Todas as operações em uma transação de gravação são atômicas. Se uma operação na transação de gravação falhar, a transação inteira falhará, o Realm lançará um erro e nenhuma alteração do bloco de transações será aplicada ao Realm.
Toda operação de gravação deve ocorrer em uma transação de escrita.
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' /> </> ); };
Ciclo de vida da transação
Um determinado domínio processa apenas uma transação de escrita por vez. Quando você faz uma transação por escrito, o domínio adiciona a transação a uma fila. O domínio avalia cada transação na ordem em que chegou.
Depois de processar uma transação, o Realm ou a comete ou a cancela:
Após um compromisso, o domínio aplica todas as operações na transação. Uma vez aplicado, o domínio atualiza automaticamente as consultas ativas. Ele notifica os ouvintes sobre objetos criados, modificados e excluídos.
Ao usar a Sincronização, o SDK também enfileira as alterações a serem enviadas ao Atlas App Services. O SDK envia essas alterações quando uma rede está disponível.
Após um cometer, objetos e coleções retornados por
useQuery
ouuseObject
são renderizados para incluir alterações relevantes.
O domínio não aplica nenhuma operação em uma transação cancelada. O domínio cancela uma transação se uma operação falhar ou for inválida.