【求助】vue给循环组件设置data时,获取不到循环的组件,求解?

需求如图:
image

编辑页面,数据已经从后端获取,通过setContent函数,先赋值给data里的tour,但是一直获取不到循环的子组件

打印console.log(this.$refs),可以看到组件的信息
如下图:
111.png

但是如下打印就获取不到组件的信息
console.log(this.$refs[zujian])
console.log(this.$refszujian)

代码如下:

//template
<component v-for="(plan,i) in item.plan" :ref="'son_'+index+'_'+i" :is="plan.type" :key="i" :pid="index" :id="i" @delete="onPlanDelete"></component>

//data

//tour值
tour:[
  {
    day: 1,
    title: '',
    date: '',
    plan:[]
  }
],

//methods
setContent(param){
    this.tour = param
    var zujian="son_0_0"
    console.log(this.$refs)
    console.log(this.$refs[zujian])
    console.log(this.$refs[zujian][0])
}
阅读 3.1k
3 个回答
this.$nextTick(() => {
    console.log(this.$refs[zujian])
    console.log(this.$refs[zujian][0])
})

这是父子组件传值吧 你可以看看这个链接 父组件 v-bind 绑定你要传的值 然后在子组件获取 通过props

ref后边不能直接跟变量,如果想在v-for里面用ref可以参考这个例子

<el-button ref="myref" :key="i" v-for="i in 5">{{i}}</el-button>
console.log(this.$refs.myref[2]);

更正下,我又试了好像可以跟变量。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题