开发者问题收集

未捕获(在承诺中)TypeError:无法读取未定义的属性(读取“默认”)

2023-04-22
4248

我刚刚使用 Vue 和 laravel 设置了 Intertia,但似乎无法加载页面,我遇到了此错误 在此处输入图片说明

这是设置

app.js

import { createApp, h } from 'vue'
import { createInertiaApp } from '@inertiajs/inertia-vue3'

createInertiaApp({
  resolve: async (name) => {
    const pages = import.meta.glob('./Pages/**/*.vue')

    return (await pages[`./Pages/${name}.vue`]())
  },
  setup({ el, App, props, plugin }) {
    createApp({ render: () => h(App, props) })
      .use(plugin)
      .mount(el)
  },
})

IndexController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class IndexController extends Controller
{
    public function index()
    {
        return inertia('Index/Index');
    }
    public function show(){
        return inertia('Index/Show');
    }
}

web.php

Route::get('/', [IndexController::class, 'index']);
Route::get('/show', [IndexController::class, 'show']);

这里只是一些基本的 vue 模板 Index.vue

<template>
    <div>index</div>
</template>

我希望 index.vue仅显示简单文本索引

3个回答

已解决将 Pages 文件夹放在错误文件夹中的问题 Pages 文件夹应位于 resources/js/Pages 中。我的错误是将 Pages 文件夹放在 resources/js

wale
2023-04-22

对我来说,它在我的路径中写入 .vue

return Inertia::render('Dashboard/Admin/Home.vue'); // wrong

我删除了 .vue 并且问题解决了

return Inertia::render('Dashboard/Admin/Home'); // correct
eylay
2023-07-25

我遇到了这个问题,这是由于 ubuntu 上区分大小写的目录命名造成的。它在我的 PC 上本地运行良好,但部署到服务器时会失败。我将文件夹命名为 /pages 而不是 /Pages

Jason Silver
2023-10-08