1

我想一起使用 nwidart/laravel-modules 和惯性。我遇到的问题是我的用户模块中的 Index.vue 没有显示并且没有错误。

当我的 app.js 中有这行代码时

resolveComponent: (name) => require(`../../Modules/Users/Resources/assets/Pages/${name}`).default

然后我的 Index.vue 出现了,但是当我尝试循环遍历它以使其成为动态时,什么也没有出现,也没有错误

这就是我现在在我的 app.js 中所拥有的

require('./bootstrap');

require('moment');

import Vue from 'vue';

import { InertiaApp } from '@inertiajs/inertia-vue';
import { InertiaForm } from 'laravel-jetstream';
import PortalVue from 'portal-vue';

Vue.mixin({ methods: { route } });
Vue.use(InertiaApp);
Vue.use(InertiaForm);
Vue.use(PortalVue);

const app = document.getElementById('app');

const modulesJson = require("../../modules_statuses.json");
var modulesObject = Object.keys(modulesJson);

new Vue({
    render: (h) =>
        h(InertiaApp, {
            props: {
                initialPage: JSON.parse(app.dataset.page),
                resolveComponent: (name) => {
            // LOOP IS HERE
                    for(let i = 0; i < modulesObject.length; i++){
                        require('../../Modules/'+modulesObject[i]+'/Resources/assets/Pages/'+name).default
                    }
                }
            },
        }),
}).$mount(app);
4

1 回答 1

0

当您想通过惯性运行时,在模块中写入文件的路径。然后在app.js文件中放一个条件,如果是通过模块发送,则执行这段代码,否则返回pages文件夹中想要的页面。像下面的代码:

Route::get('test',function () {
    return \Inertia\Inertia::render('modules/Faq/resources/js/Pages/Admin/Index');
});
createInertiaApp({
   title: (title) => `${title} - ${appName}`,
   resolve: (name) => name.toString().indexOf('modules') > -1 ? require(`../../${name}.vue`) : require(`./Pages/${name}.vue`),
});
于 2021-12-25T15:35:52.147 回答