Vue. js не удается импортировать компонент из одного файла, «undefined не имеет свойств» - PullRequest
0 голосов
/ 18 июня 2020

У меня есть компонент «Настройки. vue»:

import MyDropdown from "./MyDropdown.vue";
export default {
  components: {
    MyDropdown,
  },
}

и компонент «MyDropdown. vue»:

export default {
    props: {
        value: {
            type: String,
        },
        label: {
            type: String,
            default: this.$t("label"),
        },
    },
};

При сборке я получаю следующая ошибка:

[Vue warn]: Failed to resolve async component: function MyDropdown() {
      return __webpack_require__.e(/*! import() */ 21).then(__webpack_require__.bind(null, /*! @/components/control/MyDropdown.vue */ "./src/components/control/MyDropdown.vue"));
    }
Reason: TypeError: undefined has no properties vue.runtime.esm.js:619

Что могло вызвать TypeError?

1 Ответ

0 голосов
/ 18 июня 2020

В компоненте MyDropdown. vue значение по умолчанию для свойства метки должно быть заводской функцией, а не значением.

Значения по умолчанию для объекта или массива должны быть возвращены из фабричная функция ,

Несмотря на то, что значение по умолчанию в этом случае будет преобразовано в строку, поскольку она использует функцию this.$t, похоже, что использование фабрики является правильным подходом.

default: this.$t("label"),

должно быть

default: () => this.$t("label"),
...