Closed tille1229 closed 5 years ago
作者你好,这个组件很好用,但是在循环中引用时会有一些bug,由于需要循环显示组件,无法将 代码抽出循环外。示例代码如下: `
<v-contextmenu :ref="`${item.key}${disIndex}_contextmenu`"> <v-contextmenu-item>菜单1</v-contextmenu-item> <v-contextmenu-item>菜单2</v-contextmenu-item> <v-contextmenu-item>菜单3</v-contextmenu-item> </v-contextmenu> <div v-contextmenu="`${item.key}${disIndex}_contextmenu`"> <DisplayForm :ref="`${item.key}${disIndex}`" :data="item.data" :models="disItem" :remote="remote"/> </div> </div>`
会出现如下错误信息: Error in directive contextmenu inserted hook: "TypeError: Cannot read property 'addRef' of undefined"
自己解决方法: export default { // 之所以用 inserted 而不是 bind,是需要确保 contentmenu mounted 后才进行 addRef 操作 inserted (el, binding, vnode) { **const node= vnode.context.$refs[binding.arg]||vnode.context.$refs[binding.value] const contextmenu = node instanceof Array? node[0]:node** contextmenu.addRef({ el, vnode }) contextmenu.$contextmenuId = el.id || contextmenu._uid // eslint-disable-line no-underscore-dangle }, } 希望作者能够处理下,支持一下循环下的需求,谢谢!
export default { // 之所以用 inserted 而不是 bind,是需要确保 contentmenu mounted 后才进行 addRef 操作 inserted (el, binding, vnode) { **const node= vnode.context.$refs[binding.arg]||vnode.context.$refs[binding.value] const contextmenu = node instanceof Array? node[0]:node** contextmenu.addRef({ el, vnode }) contextmenu.$contextmenuId = el.id || contextmenu._uid // eslint-disable-line no-underscore-dangle }, }
作者你好,这个组件很好用,但是在循环中引用时会有一些bug,由于需要循环显示组件,无法将 代码抽出循环外。示例代码如下: `
会出现如下错误信息: Error in directive contextmenu inserted hook: "TypeError: Cannot read property 'addRef' of undefined"
自己解决方法:
export default { // 之所以用 inserted 而不是 bind,是需要确保 contentmenu mounted 后才进行 addRef 操作 inserted (el, binding, vnode) { **const node= vnode.context.$refs[binding.arg]||vnode.context.$refs[binding.value] const contextmenu = node instanceof Array? node[0]:node** contextmenu.addRef({ el, vnode }) contextmenu.$contextmenuId = el.id || contextmenu._uid // eslint-disable-line no-underscore-dangle }, }
希望作者能够处理下,支持一下循环下的需求,谢谢!