CyberNika / v-contextmenu

🖱 ContextMenu based on Vue 3 & Vue 2
https://cybernika.github.io/v-contextmenu/
MIT License
918 stars 112 forks source link

没有找到 menu 对应的实例 #109

Open ga676005 opened 2 years ago

ga676005 commented 2 years ago

發現有類似的 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 对应的实例

环境说明

Dangdtx commented 2 years ago

同问