vue 循环对象,给组件绑定ref,拿不到ref,this.$refs.sub.ref

<div v-if="modify.formShowHide" ref="imageText" v-for="item in modify.list">

<FormItem label="标题:" >
    <Input v-model="item.title" style="width: 400px"/>
</FormItem>
<FormItem label="描述:">
    <Input v-model="item.describe" style="width: 400px"/>
</FormItem>
<FormItem label="跳转链接:">
    <Input  v-model="item.jumpLink" style="width: 400px"/>
</FormItem>
<FormItem label="图片:">
    <upload :ref="item.ref"></upload>
</FormItem>

</div>
list:[

{
    title: "",              //标题
    describe: "",           //描述
    pictureLink: "",        //图片链接
    jumpLink: "",           //跳转链接 
    ref:"upload"    
},
{
    title: "",              //标题
    describe: "",           //描述
    pictureLink: "",        //图片链接
    jumpLink: "",           //跳转链接 
    ref:"upload1"    
}

],

this.submit.list.map((sub) => {

 if(sub.ref){
     console.log(this.$refs.sub.ref)
 }

})

阅读 4.7k
2 个回答

可以通过sub.ref的值调用console.log(this.$refs[sub.ref][0])
也可以修改upload标签<upload :ref="upload"></upload>,然后通过索引的形式调用

list.map((sub, index) => {
  console.log(this.$refs.upload[index])
})

首先要确保你组件已经渲染出来了, 可以在mounted中试试用setTimeout获取一下

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