This hook returns a callback which takes a Snapshot as a parameter and will update the current <RecoilRoot> state to match this atom state.

function useGotoRecoilSnapshot(): Snapshot => void

Time Travel Example

Example list of history of state changes with the ability to go back and restore previous global state.

function TimeTravelObserver() {
const [snapshots, setSnapshots] = useState([]);
useRecoilTransactionObserver(({snapshot}) => {
setSnapshots([...snapshots, snapshot]);
const gotoSnapshot = useGotoRecoilSnapshot();
return (
{, i) => (
<li key={i}>
Snapshot {i}
<button onClick={() => gotoSnapshot(snapshot)}>