当传递常规Vue文件时,Vue的render createElement错误

时间:2019-04-30 23:15:41

标签: vue.js vuejs2 render createelement

所以我用渲染函数创建了一个Vue文件,该文件应该循环ID并根据ID创建组件。

特别是在我的渲染函数中,我使用的是createElement,我向其传递了三个参数:

  1. Vue组件(来自JS文件)
  2. 配置对象
  3. Vue组件(来自Vue文件)

是3。这给了我这个错误:

  

无法安装组件:模板或渲染功能未定义。

此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 个答案:

答案 0 :(得分:1)

您不能将数组作为第一个参数传递给createElement

尝试以下方法:

createElement(dialogs[id])