diff --git a/packages/react/test-app/Pages/Visits/ReloadOnMount.jsx b/packages/react/test-app/Pages/Visits/ReloadOnMount.jsx
new file mode 100644
index 000000000..392c02480
--- /dev/null
+++ b/packages/react/test-app/Pages/Visits/ReloadOnMount.jsx
@@ -0,0 +1,12 @@
+import { router } from '@inertiajs/react'
+import { useEffect } from 'react'
+
+export default (props) => {
+ useEffect(() => {
+ setTimeout(() => {
+ router.reload({ only: ['name'] })
+ })
+ })
+
+ return
Name is {props.name}
+}
diff --git a/packages/svelte/test-app/Pages/Visits/ReloadOnMount.svelte b/packages/svelte/test-app/Pages/Visits/ReloadOnMount.svelte
new file mode 100644
index 000000000..82d626ed1
--- /dev/null
+++ b/packages/svelte/test-app/Pages/Visits/ReloadOnMount.svelte
@@ -0,0 +1,14 @@
+
+
+
+Name is {name}
diff --git a/packages/vue3/test-app/Pages/Visits/ReloadOnMount.vue b/packages/vue3/test-app/Pages/Visits/ReloadOnMount.vue
new file mode 100644
index 000000000..c5ef1540b
--- /dev/null
+++ b/packages/vue3/test-app/Pages/Visits/ReloadOnMount.vue
@@ -0,0 +1,16 @@
+
+
+
+ Name is {{ name }}
+
diff --git a/tests/app/server.js b/tests/app/server.js
index f68696c71..ab0f47f26 100644
--- a/tests/app/server.js
+++ b/tests/app/server.js
@@ -175,6 +175,20 @@ app.delete('/dump/delete', upload.any(), (req, res) =>
}),
)
+app.get('/visits/reload-on-mount', upload.any(), (req, res) => {
+ if (req.headers['x-inertia-partial-data']) {
+ return inertia.render(req, res, {
+ component: 'Visits/ReloadOnMount',
+ props: { name: 'mounted!' },
+ })
+ }
+
+ inertia.render(req, res, {
+ component: 'Visits/ReloadOnMount',
+ props: { name: 'not mounted!' },
+ })
+})
+
app.get('/persistent-layouts/shorthand/simple/page-a', (req, res) =>
inertia.render(req, res, { props: { foo: 'bar', baz: 'example' } }),
)
diff --git a/tests/manual-visits.spec.ts b/tests/manual-visits.spec.ts
index e2d82efe1..0748a63dd 100644
--- a/tests/manual-visits.spec.ts
+++ b/tests/manual-visits.spec.ts
@@ -866,6 +866,11 @@ test.describe('Partial Reloads', () => {
})
})
+test('can reload on mount', async ({ page }) => {
+ await page.goto('/visits/reload-on-mount')
+ await expect(page.getByText('Name is mounted!')).toBeVisible()
+})
+
test.describe('Error bags', () => {
test.beforeEach(async ({ page }) => {
pageLoads.watch(page)