-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Description
Bug report
Description / Observed Behavior
Consider the following values during a key change:
const { data, isLoading } = useSWRImmutable(someKey)
If "someKey" changes, the "data" variable can go undefined before "isLoading" goes to true. This is the state progression:
| someKey | data | isLoading | Notes |
|---|---|---|---|
| 'a' | defined | false | |
| 'b' | undefined | false | unexpected |
| 'b' | undefined | true | |
| 'b' | defined | false |
This behaviour is not expected, and not documented on SWR under "key change + previous data" docs
A use cases that breaks here is, for example, if a useEffect looks at these variables and if someKey leads to undefined results, makes update to state
Expected Behavior
The following state progression:
| someKey | data | isLoading |
|---|---|---|
| 'a' | defined | false |
| 'b' | undefined | true |
| 'b' | defined | false |
Repro Steps / Code Example
Here is a link to a StackBlitz. The console shows this state.
Additional Context
SWR version: Previous versions + Latest
nhanders, samuel871211, kaoths and Iorweth333nhanders and samuel871211
Metadata
Metadata
Assignees
Labels
No labels