【问题标题】:using a v-dialog in a v-for loop overwrites click event for all but last v-dialog when using vuetify在使用 vuetify 时,在 v-for 循环中使用 v-dialog 会覆盖除最后一个 v-dialog 之外的所有点击事件
【发布时间】:2020-10-29 04:40:09
【问题描述】:

我有一个应用在 v-for 循环中使用 Vuetify v-dialog。然而,虽然单独的激活器组件在每个v-dialog 中正确呈现,但当我点击其中一个芯片时,无论我点击哪个芯片,它都会为最后一个v-chip 发出点击事件..

就好像所有的v-dialogs都使用同一个点击事件来提交来自最后一个v-chip的数据。

为什么当一个芯片被点击时,每个v-dialog对应的点击事件没有被调用?

演示: https://codepen.io/deftonez4me/pen/ExyQRxB

【问题讨论】:

    标签: javascript vue.js vuetify.js


    【解决方案1】:

    只需使用对象而不是数组,并在这两个地方将removeTagDialogs[removeTagDialogs.indexOf(tag.id)] 替换为removeTagDialogs[tag.id]

    看看它是否正常工作:https://codepen.io/andrei-gheorghiu/pen/WNxMyMa

    【讨论】:

    • 就个人而言,我会使用index(或OP代码中的iii)而不是removeTagDialogs[iii]中的tag.id ...因为,iii保证在这个循环,但tag.id 取决于数据
    • 我注意到了。由于某种原因它被重置了。我刚刚重新应用了所有更改。现在应该一切都好。
    • 我现在已经修复了评论:p 哦,但是 - 对评论的其余部分有什么想法吗?
    • 我不确定使用数组和使用项目的索引是否可以修复它。我会尽力确保。
    • @J,在我看来问题出在removeTagDialogs[removeTagDialogs.indexOf(tag.id)] 语法上。不确定 v-model<v-dialog> 中的作用(这里不是 Vuetify 的粉丝)。
    猜你喜欢
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2021-11-22
    • 2021-02-01
    • 1970-01-01
    • 2021-05-11
    • 2023-01-20
    相关资源
    最近更新 更多