Docs Menu
Docs Home
/ /
Atlas Device SDK
/

CRUD - React Native SDK

이 페이지의 내용

  • 트랜잭션 수명 주기

RealmProvider 내에서 useRealm() 훅을 사용하여 영역 에 액세스 할 수 있습니다. 그런 다음 Realm을 사용하여 Realm 객체를 만들 수 있습니다. 쓰기 (write)() 트랜잭션 차단.

쓰기 트랜잭션( 쓰기 트랜잭션 (write transaction) ) 내의 모든 작업은 원자적 입니다. . 쓰기 트랜잭션( 쓰기 트랜잭션 (write transaction) )의 작업이 실패하면 전체 트랜잭션 이 실패하고 Realm 에서 오류가 발생하며 트랜잭션 차단 의 변경 사항이 영역 에 적용되지 않습니다.

모든 쓰기 작업은 쓰기 트랜잭션(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'
/>
</>
);
};

주어진 영역은 한 번에 하나의 쓰기 트랜잭션(write transaction)만 처리합니다. 쓰기 트랜잭션(write transaction)을 생성하면 영역이 해당 트랜잭션을 대기열에 추가합니다. 영역은 각 트랜잭션이 도착한 순서대로 평가합니다.

트랜잭션을 처리한 후 Realm은 트랜잭션을 커밋하거나 취소합니다.

  • 커밋 후 영역은 트랜잭션의 모든 작업을 적용합니다. 적용되면 영역이 자동으로 실시간 쿼리를 업데이트합니다. 수신기에 생성, 수정 및 삭제된 객체를 알립니다.

    • Sync 를 사용하는 경우 SDK는 Atlas App Services에 보낼 변경 사항도 대기열에 추가합니다. SDK는 네트워크를 사용할 수 있을 때 이러한 변경 사항을 전송합니다.

    • 커밋 후 useQuery 또는 useObject에서 반환된 객체 및 컬렉션이 관련 변경 내용을 포함하도록 다시 렌더링합니다.

  • Realm은 취소된 트랜잭션에 어떤 작업도 적용하지 않습니다. 작업이 실패하거나 유효하지 않은 경우 Realm은 트랜잭션을 취소합니다.

돌아가기

지리 공간 데이터

이 페이지의 내용