【发布时间】:2018-03-13 22:21:54
【问题描述】:
我刚刚开始使用 Vue 组件,遇到了一个我似乎无法理解的错误。
我创建了一个与https://vuejs.org/v2/examples/grid-component.html 几乎相同的基本组件,只是我没有传递数据道具,而是在标签内使用了一个插槽。 Here is a gist of that full component
在父组件中,我试图将我的上表组件和vue-paginate 组合起来输出一个分页表。
<data-table>
<paginate
ref="paginator"
name="urls"
tag="tbody"
class="data-table-body"
:list="fUrls"
:per="100"
>
<template v-for="url in paginated('urls')">
<conversion-row :url="url"></conversion-row>
</template>
</paginate>
</data-table>
为简洁起见,我删除了数据表上的道具。
当使用上述。我收到未定义网址的错误。 Screen shot of Full Error Stack
只有当分页组件是我的组件的子组件时才会发生这种情况。如果我删除我的数据表组件,那么它很好,我看到行呈现。我知道我必须遗漏一些东西才能使这一切正常工作。通读指南,我感觉到,因为组件是在父作用域中呈现的,所以分页将首先呈现然后替换插槽。不过好像不是这样的。
谁能提供一些关于为什么这不起作用的见解以及正确方法的示例?
谢谢
【问题讨论】:
-
我认为你的问题出在
<template v-for="url in paginated('urls')">vue 找不到urls你能分享这段代码的完整来源吗? -
@Saad 我很确定未定义来自未在父级上定义的分页。在 vue-paginate 脚本中,如果检查 "if (!this.$parent.paginate[this.name]) {" Vue 开发工具显示它未定义,则失败。 take.ms/cSf6T 其中 paginate 是 DataTable 的子级。我最初试图使 inter body 尽可能灵活,但我想我只是要在 DataTable 组件中移动分页应该解决它。
标签: pagination vue.js vuejs2 vue-component