Skip to main content


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

Transaction Example

Important Note: This example is not efficient because it will subscribe the component to re-render for all state changes.

function TransactionButton(): React.Node {
const snapshot = useRecoilSnapshot(); // Subscribe to all state changes
const modifiedSnapshot ={set}) => {
set(atomA, x => x + 1);
set(atomB, x => x * 2);
const gotoSnapshot = useGotoRecoilSnapshot();
return <button onClick={() => gotoSnapshot(modifiedSnapshot)}>Perform Transaction</button>;

Time Travel Example

See the Time Travel Example