mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
When a server action triggers a redirect, we're incorrectly applying a refresh marker to the segment they were on, rather than the segment they were being redirected to. As a result, when revalidation occurs (via `revalidateX` or `router.refresh()`), the top-level segment would be replaced with data for an incorrect segment. For example, if triggering a redirect action from `/redirect` to `/`, the router state tree would save a reference to `/redirect`. The next time a refresh or revalidate happens, it'd refresh the segment data for `/redirect` instead of `/`. Fixes #64728 Closes NEXT-3156
31 lines
905 B
TypeScript
31 lines
905 B
TypeScript
import Link from 'next/link'
|
|
import { clearData, getData } from './actions'
|
|
|
|
export default async function Home() {
|
|
const data = await getData()
|
|
const randomNumber = await fetch(
|
|
'https://next-data-api-endpoint.vercel.app/api/random'
|
|
).then((res) => res.text())
|
|
|
|
return (
|
|
<div>
|
|
<Link href="/revalidate-modal">Open Revalidate Modal</Link>
|
|
<Link href="/refresh-modal">Open Refresh Modal</Link>
|
|
<Link href="/redirect-modal">Open Redirect Modal</Link>
|
|
<Link href="/detail-page">Intercepted Detail Page</Link>
|
|
<div id="random-number">{randomNumber}</div>
|
|
<form action={clearData}>
|
|
<button id="clear-entries">Clear Entries</button>
|
|
</form>
|
|
<div>
|
|
<h1>Current Data</h1>
|
|
<ul id="entries">
|
|
{data.map((item, index) => (
|
|
<li key={index}>{item}</li>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|