如何在 Vue3 v-for Array Refs 中传递索引

Mas*_*iro 2 vue.js vuejs3 vue-composition-api

文档中,它给出了代码:

<div v-for="item in list" :ref="setItemRef"></div>
Run Code Online (Sandbox Code Playgroud)
export default {
  setup() {
    let itemRefs = []
    const setItemRef = el => {
      if (el) {
        itemRefs.push(el)
      }
    }
    onBeforeUpdate(() => {
      itemRefs = []
    })
    onUpdated(() => {
      console.log(itemRefs)
    })
    return {
      setItemRef
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我也想将 v-for 索引传递给处理程序,就像这样:

// fake code
 <div v-for="(item, index) in navItems" :key="index":ref="setNavItemRefs($el, index)">
   <span>{{ item }}</span>
 </div>
Run Code Online (Sandbox Code Playgroud)

我该如何绑定这个index

Bou*_*him 5

尝试定义一个内联处理程序,例如:

<div v-for="item in list" :ref="(el)=>setItemRef(el,index)"></div>
Run Code Online (Sandbox Code Playgroud)

 const setItemRef = (el,index) => {
      if (el) {
        itemRefs.push(el)
      }
    }
Run Code Online (Sandbox Code Playgroud)