Визуальный createElement Vue выдает ошибку при передаче обычного файла Vue - PullRequest
0 голосов
/ 01 мая 2019

Итак, я создал файл Vue с функцией рендеринга, которая должна зацикливать идентификаторы и создавать компоненты в соответствии с ними.

В частности, внутри моей функции рендеринга я использую createElement, которому я передаю трипараметры:

  1. Компонент Vue (из файла JS)
  2. объект конфигурации
  3. Компонент Vue (из файла Vue)

Это 3. Это дает мне эту ошибку:

Не удалось смонтировать компонент: шаблон или функция визуализации не определена.

this VueУ файла нет функции рендеринга, но он имеет template, поэтому я запутался, почему происходит эта ошибка.

В приведенном ниже коде [createElement([dialogs[id]])] - это часть, которая выдает ошибку:

import { QDialog } from 'quasar'
import Signin from './Signin.vue'
import Signout from './Signout.vue'

const dialogs = {
  Signin,
  Signout
}

function createDialogNode (id, createElement, parent) {
  return createElement(QDialog, {
    props: {
      value: parent.toggles[id]
    },
    on: {
      input: function (newState) {
        parent.toggles[id] = newState
      }
    }
  }, [createElement([dialogs[id]])])
}

// further down I use `createDialogNode` inside the render function and loop over the props inside `dialogs`.

Итак, в приведенном выше коде вы видите, что у меня есть объект dialogs с импортированными компонентами.Эти компоненты являются обычными файлами Vue.

Я хочу передать их внутри createElement в качестве третьего параметра другому createElement, который возвращается в моей функции выше.

1 Ответ

1 голос
/ 01 мая 2019

Вы не можете передать массив в createElement в качестве первого аргумента.

Попробуйте вместо этого:

createElement(dialogs[id])
...