CyberNika/v-contextmenu

没有找到 menu 对应的实例

ga676005 opened this issue · 1 comments

發現有類似的 issue,不知是否解決了 #42

期望结果

做一個 Contextmenu.vue <Contextmenu ref="menu"> ,把 menu ref 存起來,在一個別人組件用 v-for 的 list 中把 menu ref 引入,然後可以寫 <div v-contextmenu:menu>open<div> 打開 menu

实际结果

報錯: 没有找到 menu 对应的实例

复现步骤

menu.js

let menu = null

export function setMenu(contextmenuRef) {
  menu = contextmenuRef
}

export function getMenu() {
  return menu
}

Menu.vue

<script>
import { setMenu } from '@/stores/menu.js'
const contextmenu = ref()

onMounted(() => {
  setMenu(contextmenu)
})

</script>
<template>
  <Contextmenu ref="contextmenu">
    //...
  </Contextmenu>
</template>

OtherComponent.vue

<script>
  import { getMenu } from '@/stores/menu.js'
</script>
<template>
  <Menu />
  <div v-contextmenu:menu>open</div>
</template>

使用 v-contextmenu:menu 但 menu 不是在目前這個 SFC 裡用 ref="menu" 取得的,而是另外 import 的,menu 無法使用
報錯: 没有找到 menu 对应的实例

环境说明

  • 组件版本:3.0.0
  • Vue 版本:3.2.20
  • 操作系统及版本:Win 10
  • 浏览器及版本:Edge

同问