当前位置: 首页 > 知识库问答 >
问题:

Vue组件未定义的属性用作插槽的子属性

皇甫雨石
2023-03-14

我刚刚开始使用Vue组件,遇到了一个错误,我似乎无法理解到底是什么错了。

我创建了一个与https://vuejs.org/v2/examples/grid-component.html几乎相同的基本组件,除了没有传递数据道具,而是在标签内部使用了一个插槽。这是完整组件的要点

在父组件中,我尝试将我的上表组件和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>

为了简洁起见,我去掉了数据表上的道具。

当使用上述方法时。我得到一个未定义URL的错误。完整错误堆栈的屏幕截图

只有当paginate组件是我的组件的子组件时,才会发生这种情况。如果我删除了我的数据表组件,那么就可以了,我可以看到行被渲染。我知道我一定是错过了一些东西,让这一切顺利。通过阅读该指南,我感觉到,由于组件是在父范围中呈现的,所以分页将首先呈现,然后替换插槽。然而,情况似乎并非如此。

有人能提供一些关于为什么这不起作用的见解和正确方法的例子吗?

谢谢

共有1个答案

黄骏喆
2023-03-14

最后,我重新安排了它,并使用作用域插槽将分页数据提升回父视图。

在我的DataTable(子)组件

...
<paginate
    v-if="! isLoading"
    ref="paginator"
    name="data"
    tag="tbody"
    class="data-table-body"
    :list="data"
    :per="100"
>
    <slot :data="paginated('data')"></slot>
</paginate>
...

然后在我的父模板中

<data-table :data="src">
    <template scope="dt">
        <conversion-row v-for="url in dt.data" :url="url"></conversion-row>
    </template>
</data-table>

这允许我传入完整的数据src,但循环传入父级中的分页行,提供自定义正文。

这可能不是最好/最有效的方法,但它适用于我的用例。如果有人有改进的建议,我很乐意听听。

 类似资料:
  • 试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!

  • 问题内容: 我正在借助以下方法设置新的React:https : //github.com/facebookincubator/create-react- app 但是,我遇到了一个棉绒问题。我收到以下掉毛错误。 这是导致问题的代码: 我试着使用react / prop-types规则,但无济于事。 问题答案: 根据这个问题发表评论。 这似乎是因为您在安装时仅应使用create-react- ap

  • 这是我的第一个项目,也是我的第一个岗位。我正在创建一个在朋友之间使用的博彩网站,但我遇到了这个错误:无法读取未定义的属性“Push” 我想让它再次发挥作用是件小事吧? 有什么建议吗? 数据库模式

  • 创建Spring Boot cloud config应用程序时出现以下错误。有什么帮助吗?

  • 问题内容: 我已经将我的log4j2自定义插件打包到一个单独的jar中(仅包含插件类),并将其放在应用程序类路径中。但是不会被检测到。 我用谷歌搜索发现它是一个错误-“ packages”参数不再使用。还有一些链接建议了一些替代方案,其中将maven pom.xml和log4j2插件dat文件放入上下文中。问题是我不熟悉Maven,并且不知道如何生成dat文件。我只知道它包含在log4j-2.1-

  • 问题内容: 检查JavaScript中的对象属性是否为最佳方法是什么? 问题答案: 检查属性值是否为特殊值的通常方法是: 要检查对象是否实际上没有这样的属性,并因此在尝试访问它时默认情况下将返回: 检查与标识符关联的值是否为特殊值, 或者 尚未声明该标识符。注意:此方法是引用 未声明的标识符(注意:与的值不同)的唯一方法,且不会出现早期错误: 在ECMAScript 5之前的JavaScript版

  • 我得到错误消息:未定义的属性: 我的控制器是 而我的模特是 而我的观点是 遇到PHP错误严重程度:注意 消息:未定义的属性:CI_DB_mysqli_result::num_row 文件名:models/Login\u mod。php 电话号码:27 回溯: 文件:C:\xampp\htdocs\ov400\application\models\Login\u mod。php行:27函数:\u错误

  • 本文向大家介绍jQuery实现的一个自定义Placeholder属性插件,包括了jQuery实现的一个自定义Placeholder属性插件的使用技巧和注意事项,需要的朋友参考一下 HTML5中文本框的新属性placeholder是个非常好用的属性,但是IE系列直至IE9都不支持这一属性,这就让大家在用这一属性的时候有些犹豫不决。自己曾经写过很多类似共的小控件,但是都不是很通用,这里分享一个渐进增强