You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel+InertiaJS/Vue3项目$page未定义错误及表单赋值问题

Laravel + InertiaJS/Vue3 编辑表单$page未定义问题修复

问题根源

在Vue3的<script setup>语法糖环境下,无法直接访问全局的$page对象,必须通过Inertia官方提供的usePage()钩子来获取页面传递的props。

修复代码

将组件代码修改为以下内容,重点是导入usePage并正确获取props:

<template>
    <form @submit.prevent="submit">
        <input id="profile_name" v-model="form.profile_name" />

        <input id="description" v-model="form.description" />

        <button type="submit">Submit</button>
    </form>
</template>

<script setup>
import { useForm, usePage } from '@inertiajs/vue3';
import { router } from '@inertiajs/vue3';

// 获取页面传递的props
const { props } = usePage();

// 初始化表单:优先使用props中的值,为空则用默认字符串
const form = useForm({
    profile_name: props.profile_name ?? 'profile_name',
    description: props.description ?? 'description',
});

function submit() {
    router.post('/members', form);
}
</script>

补充说明

  • 使用??空值合并运算符比||更严谨,只会在值为null或undefined时启用默认值,避免像0、空字符串这类合法业务值被错误替换。
  • 需确保Laravel后端在渲染该页面时,已将profile_name和description正确注入到Inertia的props中。

内容的提问来源于stack exchange,提问作者erlango3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:43:33