在 v-for 循环中使用 vue 组件

use vue component in v-for loop

你好,我需要帮助生成多个 vue 组件(vue-popperjs - 用于工具提示)。

在下面的代码中,组件出现在页面上但我无法与它们交互(按钮不会切换工具提示,工具提示默认显示)并且我在控制台中出现错误 "vue.common.js?e881:560 [Vue warn]: 挂载钩子出错: (发现于)

TypeError: Cannot read property '0' of undefined
    at VueComponent.mounted (eval at  (app.js:909), :117:64)
    at callHook (eval at  (app.js:891), :2275:21)
    at Object.insert (eval at  (app.js:891), :2954:7)
    at invokeInsertHook (eval at  (app.js:891), :4960:28)
    at Vue.patch [as __patch__] (eval at  (app.js:891), :5124:5)
    at Vue.Vue._update (eval at  (app.js:891), :2042:19)
    at Vue.updateComponent (eval at  (app.js:891), :2158:10)
    at Watcher.get (eval at  (app.js:891), :2469:25)
    at Watcher.run (eval at  (app.js:891), :2539:22)
    at flushSchedulerQueue (eval at  (app.js:891), :2331:13)

代码:

<span class="input" v-for="additionalCategory in additionalCategories">
  <p>@{{ additionalCategory.name }}

    <popper trigger="click" :options="{placement: 'right'}" :content="additionalCategory.tooltip_text">
      <div class="additionalCategory.tooltip_text">
        @{{ additionalCategory.tooltip_text }}
      </div>

      <button slot="reference">
        Reference Element
      </button>
    </popper>
    <span v-if="additionalCategory.tooltip_active" class="tooltip-div" @click="showTooltip(additionalCategory.tooltip_text, additionalCategory.id, $event)">

      <span class="tooltip_toggle" v-bind:class="additionalCategory.id"></span>
    </span>
  </p>

  <div class="input-action">
    <div class="counter">
      <input type="text" :value="additionalCategory.quantity" :id="additionalCategory.id">

      <div class="ico"><img :src="'/images/icons/'+additionalCategory.icon+'.png'"
                            :id="additionalCategory.name"></div>
      <div class="plus-minus">
        <div class="minus" v-on:click="clickMinus($event, additionalCategory.id)"></div>
        <div class="plus" v-on:click="clickPlus($event, additionalCategory.id)"></div>
      </div>
    </div>
  </div>
</span>

我在app.js注册了popper:

Vue.component('popper', require('vue-popperjs'));

和相同的组件工作但不在 for 循环中。 请帮助我,我不知道该怎么做。

这里的问题归结为 popper 组件被嵌入段落元素 (<p></p>)。把它从那个元素中取出来解决了这个问题。