Элемент UI $ подтверждения не является функцией

1
задан tony19 25 March 2019 в 18:15
поделиться

1 ответ

если я импортирую ElementUI, я получаю это TypeError: Cannot read property 'install' of undefined

Ваш код неправильно импортирует ElementUI как именованный импорт. Пакет element-ui не имеет именованного экспорта ElementUI, поэтому он будет undefined. Импорт по умолчанию - это то, что вы бы использовали там (но это не то, что вам действительно нужно):

//import { ElementUI } from 'element-ui' // DON'T DO THIS
import ElementUI from 'element-ui'
Vue.use(ElementUI)

Поскольку вы импортируете элементы по отдельности (чтобы сэкономить на размере пакета), вы следует также избегать импорта ElementUI в глобальном масштабе , как это, потому что это будет препятствовать экономии размера пакета.

Для меня не совсем понятно из документации Element, но кажется, что Element расширяет компоненты Vue с помощью $ verify из коробки.

Документы утверждают, что глобальный метод $confirm доступен только в том случае, если полностью импортирует элемент следующим образом:

import ElementUI from 'element-ui'
Vue.use(ElementUI)

Если вы импортируете элементы по отдельности, вам следует вместо этого импортировать метод confirm локально в компоненте. То есть импортируйте MessageBox для его метода confirm:

// MyComponent.vue
import { MessageBox } from 'element-ui'

export default {
  methods: {
    handleDelete(row) {
      MessageBox.confirm(`Do you really want to delete ${row.name} ?`,
        "Confirmation",
        {
          confirmButtonText: "OK",
          cancelButtonText: "Cancel",
          type: "warning"
        })
    }
  }
}

demo

0
ответ дан tony19 25 March 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: