Docs 菜单

Docs 主页开发应用程序Atlas Device SDKs

CRUD - React Native SDK

在此页面上

  • 事务生命周期

RealmProvider中,您可以使用useRealm()钩子访问 Realm。然后,您可以使用Realm.write()事务区块创建 Realm 对象。

写事务中的所有操作都是 原子 操作 。如果写事务中的某个操作失败,则整个事务将失败,Realm 会引发错误,并且事务区块中的任何更改都不会应用于 Realm。

每个写入操作都必须在写事务中发生。

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 一次只能处理一个写事务。当您执行写事务时,realm 会将该事务添加到队列中。该 realm 会按照每个事务到达的顺序对其进行评估。

处理完一个事务后,Realm 会提交或将其取消

  • 提交后,该 Realm 将应用事务中的所有操作。一旦应用,该 Realm 会自动更新实时查询。它通知监听器已创建、修改和删除的对象。

    • 使用Sync时,SDK 还会对更改进行排队以发送到 Atlas App Services。 SDK 会在网络可用时发送这些更改。

    • 提交后,useQueryuseObject 返回的对象和集合会重新呈现,从而包含相关更改。

  • Realm 不会在已取消的事务中应用任何操作。如果某一操作失败或无效,Realm 则会取消事务。

← 地理空间 — React Native SDK

在此页面上