【问题标题】:_vm.paginated is not a function error with vue-paginate_vm.paginated 不是 vue-paginate 的函数错误
【发布时间】:2018-11-28 21:28:27
【问题描述】:

所以我尝试使用Vue-Paginate 插件,但是,我看到了以下错误。

_vm.paginated is not a function

这是我的代码:

<template>
  <section :class="open ? 'block': 'hidden'">
    <!-- Start Results -->
    <h1 class="font-thin text-black text-center w-full">Cruise Results</h1>

    <section class="flex flex-wrap">
      <paginate name="cruises" :list="cruises" :per="3">
        <section class="shadow p-4 mb-4 w-full" v-for="cruise in paginated('cruises')" :key="cruise.id">
          <span class="text-md font-bold">{{ cruise.title }}</span>
          <span class="text-sm font-semibold">{{ cruise.summary }}</span>

          <section class="flex">
            <section class="text-lg">
              <span class="text-black">Inside</span>
              <br>
              <span class="text-red">£{{ cruise.inside }}</span>
            </section>
            <span class="pr-8"></span>
            <section class="text-lg">
              <span class="text-black">Balcony</span>
              <br>
              <span class="text-red">£{{ cruise.balcony }}</span>
            </section>
          </section>
        </section>
      </paginate>
    </section>
    <paginate-links for="cruises" :show-step-links="true"></paginate-links>
  </section>
  <!-- Cruise Results -->
</template>

<script>
import firebase from '@/middleware/firebase'
import VuePaginate from 'vue-paginate'

const database = firebase.database()

export default {
  components: {
    VuePaginate
  },
  data: function () {
    return {
      cruises: [],
      paginate: ['cruises']
    }
  },
  mounted () {
    database.ref('cruises').on('child_added', snapshot => this.cruises.push(snapshot.val()))
  }
}
</script>

我已经实现了两个 firebase,并且我相信我正确地遵循了文档。

感谢您提供任何帮助。

【问题讨论】:

    标签: vue.js vuejs2 vue-component nuxt.js


    【解决方案1】:

    您需要添加使用,如中所述 setup

    Vue.use(VuePaginate)
    

    它将添加 mixins,例如分页方法。

    https://github.com/TahaSh/vue-paginate/blob/master/src/index.js#L16

    【讨论】:

    • 我正在使用 Nuxt,所以不确定在哪里可以使用 Vue.use(VuePaginate) 这就是我将其注册为组件的原因。
    • @B.J.B 组件不会调用添加 mixin 的安装函数。在 nuxt 中,您可以将其放入 /plugin/whatever.js 和 nuxt.config 插件中: [ '~/plugins/whatever.js', ]
    • 所以只要有插件.js文件就可以调用Vue.use(...)?
    猜你喜欢
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 2022-08-15
    • 2021-07-05
    • 2020-10-04
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多