有没有一种方法可以轻松地从VNode调用函数?

时间:2020-06-11 11:58:03

标签: vue.js vuejs2 vue-component vuex vue-router

我是Vue的新手,所以道歉是一个显而易见的问题。

目前,我有一个组件可以搜索其插槽以查找特定组件并构建Vnode数组。

我有一个看起来像这样的渲染函数:

render(createElement){
 createElement("div", {}, this.vnodeArray);
}

我现在的问题是基本上我想调用数组内部组件的函数。基本上,如果可以的话,我想做类似this.vnodeArray[1].function()的事情。但这似乎不可能

我尝试过的解决方案是: 向Vnodes添加一个引用,并通过ref调用函数

beforeMount() {
 for(val i =0; i<vnodeArray.length; i++){
  if(typeof vnodeArray[i].data !== "undefined") vnodeArray[i].data.ref = "page"+i;
  else vnodeArray[i].data = {ref: "page"+i};
 }
}

//Skip to when I want to call function from component that is vnode
(this.$refs["page2"] as any).validate()

即使在添加引用后,在控制台上也遇到了类似于Can not call validate on undefined的错误,尽管我已经在console.log中记录了vnode的数据对象,并且它们似乎显示了引用的变化。

尽管我是新手,但我愿意接受任何人可能拥有的任何意见/建议/提示 谢谢您的时间

0 个答案:

没有答案