a024a04e01
`RecordTableNoRecordGroupScrollToPreviousRecordEffect` uses `useAtomState(lastShowPageRecordIdState)` to read the atom value and check whether to trigger an effect. Inside `run()`, it calls `setLastShowPageRecordId(null)` to reset the atom, then` triggerInitialRecordTableDataLoad()` which fires many `store.set()` calls on other atoms. These high-frequency store updates cause the component to re-render before Jotai's internal useReducer dispatch (propagating the null value) is processed by React. The result: useAtomState returns a stale non-null value on every subsequent render, even though the Jotai store already holds null. The effect re-runs, sees the stale non-null value, calls `run()` again, creating an infinite loop. This is a Jotai v2 edge case where useAtom's rendered value desyncs from the actual store value under high-frequency concurrent updates. ### The fix Read lastShowPageRecordId directly from the Jotai store via `store.get()` inside the effect instead of relying on the rendered value from useAtomState. This guarantees the effect always sees the true store value and correctly skips when the atom is null.