Ionic Vue未解决离子返回按钮组件的问题

cwtwac6a  于 2022-12-08  发布在  Ionic
关注(0)|答案(1)|浏览(166)

我无法找出为什么我从Vue收到此警告,并且后退按钮不起作用:

runtime-core.esm-bundler.js?5c40:38 [Vue warn]: Failed to resolve component: ion-back-button 
  at <TheHeader titulo="Home" > 
  at <IonPage isInOutlet=true registerIonPage=fn<registerIonPage> > 
  at <Home ref=Ref< undefined > key="/home" isInOutlet=true  ... > 
  at <IonRouterOutlet> 
  at <IonApp> 
  at <App>

这是一个从头开始的简单应用程序,一些页面共享一个页眉,我正试图外包一个新的组件,称为TheHeader。
这是我的一个页面,Home.vue

<template>
    <ion-page>
        <the-header titulo="Home"></the-header>
        <ion-content>
        </ion-content>
    </ion-page>
</template>

<script>
import { IonContent, IonPage } from '@ionic/vue';
import TheHeader from '../components/TheHeader.vue';

export default {
  name: 'Home',
  components: {
    IonContent,
    IonPage,
    'the-header': TheHeader
  }
};
</script>

这是我的TheHeader.vue组件:

<template>
    <ion-header>
        <ion-toolbar>
            <ion-buttons name="start">
                <ion-back-button>
                </ion-back-button>
            </ion-buttons>
            <ion-title>
                {{ titulo }}
            </ion-title>
        </ion-toolbar>
    </ion-header>
</template>

<script>
import { IonHeader, IonToolbar, IonTitle, IonButtons, IonBackButton } from '@ionic/vue'

export default {
    props: [
        'titulo'
    ],
    components: [
        IonHeader, IonToolbar, IonTitle, IonButtons, IonBackButton
    ]
}
</script>

如果我从主页导航到另一个页面,这基本上是类似的(我在ion-content中使用了一个非常基本的导航菜单),或者即使我重新加载了这个页面,所以根本没有导航,我也会得到上面的警告,如果我导航到另一个页面,然后我点击后退按钮,上一个页面不会加载。
我做错了什么?

tv6aics1

tv6aics11#

组件的文档指定类型仅为Object。并且此demo显示数组不能用于components
解决方法是在TheHeader.vue中将components更改为Object

export default {
    // BEFORE:
    components: [ IonHeader, IonToolbar, IonTitle, IonButtons, IonBackButton ]

    // AFTER:   👇                                                          👇
    components: { IonHeader, IonToolbar, IonTitle, IonButtons, IonBackButton }
}

相关问题