首页 > 解决方案 > 开玩笑 [Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘类型’”

问题描述

我对 Jest 单元测试比较陌生。我有一个带有 Buefy 标签的子组件 DataList.vue,它有一个 v-bind,如下所示:

<b-tag :type="currentStatus.type" class="statustag">
    {{ currentStatus.statusText }}
    <b-icon
      :icon="currentStatus.icon"
      size="is-small"
      class="tagicon"
    ></b-icon>
  </b-tag>

在脚本标签中,我有以下计算属性:

get currentStatus() {
    return this.statusOptions
      .filter(status => status.status == this.item.status)
      .shift();
  }
  private statusOptions = [
    {
      status: 'Success',
      statusText: 'Success',
      type: 'is-primary',
      icon: 'check-circle'
    },
    {
      status: 'Fail',
      statusText: 'Fail',
      type: 'is-primary',
      icon: 'close-circle'
    },
  ];

当我浅挂载组件并编写任何单元测试并运行它时,我收到以下错误:

[Vue warn]: Error in render: "TypeError: Cannot read property 'type' of undefined"

statusText与和类似icon

当我将 b-tag 元素注释掉时,该组件在浏览器上呈现良好,并且组件其余部分的单元测试工作。任何有关如何正确测试 b-tag 元素的帮助表示赞赏。

标签: typescriptunit-testingvue.jsjestjscomputed-properties

解决方案


推荐阅读