javascript - Vue $refs 为什么无法获取组件对象
问题描述
<el-tree ref='permissions_tree' :data='permissions' :props='basicConfig.defaultProps' show-checkbox node-key='id' :render-content='renderNode'></el-tree>
mounted () { console.log(this.$refs.permissions_tree);}
在 mounted 中打印输出的是undefined!这是为什么?
我在表格中渲染的按钮,第一次点击调用 console.log(this.$refs.permissions_tree);得到的也是 undefined,第二次就能正常获取到组件了
{ title: ’操作’, key: ’action’, align: ’center’, render: (h, params) => { return h(’p’, [h(’Button’, { props: { type: ’primary’, size: ’small’ }, style: { marginRight: ’5px’ }, on: { click: () => { this.userForm.staffid = params.row.staffid; this.userForm.name = params.row.name; this.userForm.phoneticize = params.row.phoneticize; this.userForm.gender = params.row.gender; this.userForm.mobile = params.row.mobile; this.userForm.telephone = params.row.telephone; this.userForm.identification = params.row.identification; this.userForm.positions = params.row.positions; this.userForm.permissions = params.row.permissions; this.userFormShow = true; console.log(this.$refs.permissions_tree); //这里 } }}, ’编辑’) ]); }}
问题解答
回答1:可能你用v-if来切换组件展示,所以要在下一个tick才能获取到
this.$nextTick(() => { console.log(this.$refs.permissions_tree);});回答2:
写在
this.$nextTick(() => {})
里试一下
回答3:外层组件是不是使用了v-if,换成v-show 试一下
回答4:调用这个方法this.$nextTick(function () {
// 里面打印 })
相关文章:
1. javascript - vue报错,昨天也是这么写的也没报错呀,今天就报错了,不知原因。求解决2. html - jQuery 移动端横向滚动会带动网页上下滑动怎么办?3. 最新版的phpstudy的mysql版本只是5.5,有没有5.6或者5.7版本的集成版呀?4. css - 这个线怎么做,效果是竖直的效果,5. javascript - 关于微信公众号开发的一个trouble!6. html - 谁能推荐一个类似apple官网的模板,用来展示产品的?7. javascript - 这两种JS写法有什么区别8. css - font-face引入的新字体无法在火狐浏览器上显示?但是谷歌可以?9. css3 - transition transform初始display:block怎么就没移动效果?10. javascript - vue el 重复挂载 同一个实例