Компонент bootstrap-vue отображается как комментарий

В моем проекте vue некоторые компоненты bootstrap-vue отображаются нормально, но другие отображаются как HTML-комментарий. В этом примере оба компонента отлично отображаются на панели инструментов Vue Dev. Я добавил «нормальное» поле ввода, чтобы посмотреть, нормально ли оно отображается.

<template>
    <div class="list-group">
        <div>Test</div>
        <b-form-input v-model="text1"
                      type="text"
                      placeholder="Enter your name"></b-form-input>
        <b-form-textarea id="textarea1"
                         v-model="text"
                         placeholder="Enter something"
                         :rows="3"
                         :max-rows="6"></b-form-textarea>
        <input type="text"/>
    </div>
</template>

<script lang="ts">
    import {Component, Vue} from 'vue-property-decorator';

    @Component
    export default class ProjectList extends Vue {
        text = 'text';
        text1 = 'text1';
    }
</script>

Но они будут отображаться как:

введите здесь описание изображения

введите здесь описание изображения

Я ожидал увидеть оба поля ввода в браузере, но я вижу только текстовое поле и «нормальное» поле ввода. В журнале ошибок не вижу. Что я мог упустить?


person Jens    schedule 23.01.2019    source источник
comment
Это совершенно нормально. Вероятно, это потому, что там есть элемент, который условно отображается.   -  person Terry    schedule 23.01.2019
comment
@Terry спасибо за ваш комментарий. Вы имеете в виду компонент b-input? Я не вижу этого в документе: bootstrap-vue.js.org/docs / компоненты / ввод формы. Обратите внимание, что в моем коде нет v-if.   -  person Jens    schedule 23.01.2019
comment
Так работает VueJS, ничего общего с плагином начальной загрузки VueJS.   -  person Terry    schedule 23.01.2019
comment
@ Терри ааа ... прости. Возможно, мой вопрос был непонятен, но я не вижу поля ввода в браузере, только текстовое поле видно. Почему я вижу одно, а другое нет? Я ожидаю увидеть и то, и другое :-)   -  person Jens    schedule 23.01.2019
comment
Я заметил, что вы вкладываете эти элементы прямо в <ul>. Единственный допустимый прямой потомок <ul> - <li>. Попробуйте обновить разметку и посмотрите, не изменится ли что-нибудь.   -  person Terry    schedule 23.01.2019
comment
Спасибо. Я обновил вопрос. Однако с div это не помогло.   -  person Jens    schedule 24.01.2019
comment
ваша v-модель указывает на недвижимость?   -  person FailedUnitTest    schedule 24.01.2019
comment
@FailedUnitTest да, это так. Я добавил к вопросу полный пример кода.   -  person Jens    schedule 24.01.2019


Ответы (1)


Хорошо, я нашел решение:

Вместо импорта:

import Vue from 'vue'    
import BootstrapVue from 'bootstrap-vue'

Vue.use(BootstrapVue);

Импортирую:

import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue/dist/bootstrap-vue.esm';

Vue.use(BootstrapVue);

И теперь все работает нормально. Я не уверен, почему первое описано в документации bootstrap-vue. Может быть, потому что я использую TypeScript ..?

person Jens    schedule 29.01.2019
comment
Привет, Йенс, я пытался развернуть проект vue с помощью TypeScript, где у меня возникли трудности с включением bootstrapVue. Прямо сейчас: import BootstrapVue from 'bootstrap-vue' Не работает. Итак, я попытался импортировать из bootstrap-vue.esm, но появляется следующая ошибка: Не удалось найти файл декларации для модуля bootstrap-vue / dist / bootstrap-vue.esm ... У вас есть какие-либо идеи или вы можете предоставить рабочий образец проекта bootstrap-vue + ts? Спасибо. - person Ruhshan; 02.03.2021
comment
@Ruhshan Сейчас я использую подход, описанный в руководстве BootstrapVue, поскольку моя первоначальная проблема исчезла. Попробуйте удалить папку node_modules и запустить npm install. Я думаю, это помогло. - person Jens; 04.03.2021