You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After clicking "two" page should update after 200ms
After clicking "three", NavLink for "two" should render it's unselected style, and NavLink for "three" should transition to "pending" state.
Actual Behavior
After clicking "two" page doesn't update until deferred value resolves
After clicking "three" NavLink stays in pending state for loading "two"
Repeating similar procedure for (client:) navigation, using clientLoader has the same behavior. Without any delay in clientLoader we can break pendingUI even faster:
Click (client:) "one"
Wait for deferred content to load (3 seconds)
Click (client:) "block"
-> Now NavLink doesn't transition to pending state, it goes directly to showing "block" as active, but after the 3 second delay to resolve the deferred value.
The text was updated successfully, but these errors were encountered:
Can you try putting a key on the Suspense boundary to make it specific to the location? I think I've seen this behavior before when React re-uses the same component tree across navigations between the same route with different params - it reuse's the Suspense boundary (due to lack of a key), doesn't re-fallback, and because it's in a startTransition under the hood it continues showing the old UI
Reproduction
Go to https://stackblitz.com/edit/remix-run-remix-hj7xu8?file=app%2Froutes%2F_common.tsx
Click (server:) "one"
Wait for deferred content to load (3 seconds)
Click (server:) "two"
Within the next 3 seconds (before deferred content loader) click (server:) "three"
System Info
Used Package Manager
npm
Expected Behavior
After clicking "two" page should update after 200ms
After clicking "three", NavLink for "two" should render it's unselected style, and NavLink for "three" should transition to "pending" state.
Actual Behavior
After clicking "two" page doesn't update until deferred value resolves
After clicking "three" NavLink stays in pending state for loading "two"
Repeating similar procedure for (client:) navigation, using clientLoader has the same behavior. Without any delay in clientLoader we can break pendingUI even faster:
Click (client:) "one"
Wait for deferred content to load (3 seconds)
Click (client:) "block"
-> Now NavLink doesn't transition to pending state, it goes directly to showing "block" as active, but after the 3 second delay to resolve the deferred value.
The text was updated successfully, but these errors were encountered: