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

试图理解Vue.js中的“未定义”警告

赵正雅
2023-03-14

这出现在我的浏览器控制台:

[Vue warn]:计算表达式“permissions.edit”时出错:TypeError:无法读取未定义的属性“edit”(在组件中找到):

相关代码:

{{ permissions | json }}
<a class="button" v-on:click="toggleEditMode" v-if="permissions.edit">{{ editMode ? 'Save' : 'Edit' }}</a>

结果:

权限显然不是未定义的。发生什么事?让事情变得更混乱的是,如果我将一个文本对象传递给组件:permissions=“{edit:true}”),警告就会消失,但是{permissions}}的json输出看起来完全相同。

共有2个答案

云鸿祯
2023-03-14

这是因为权限不是Vue路径对象。一旦你将其作为道具传递,它将成为道具,你将能够像那样引用它。能否提供组件的完整代码以作进一步解释?

井修雅
2023-03-14

正如在您文章的评论中所讨论的,这是由于在created()中使用异步API调用yo do来最初获取权限对象。

我建议你用类似的东西https://github.com/vuejs/vue-async-data. 它允许您异步获取数据(例如使用vue资源),并提供一种隐藏组件内容的方法,直到加载数据完成。

尽管您可以自己轻松模拟:

data: function () {
  return { loaded: false, permissions: {} }
},
created() {
  return this.$http(...).then(function (result) {
    this.permissions = result.data.permissions // or however your data is
    this.loaded = true
  })
}

在模板中,在包装div上使用v-if=“loaded”隐藏内容,直到实际加载权限。

 类似资料:
  • 问题内容: 我正在尝试从Java代码调用Java脚本函数。 这是我的Java代码 这是我的Java脚本文件: 但是当我运行驱动程序类的主要方法时,它给我错误如下: 我所知道的是它需要一些脚本引擎来执行它。 为此,我在类路径中添加了rhino.jar文件,但这不起作用。 我没有得到如何解决这个错误。请帮助。谢谢。 问题答案: 不是JavaScript的一部分,而是Web浏览器提供的对象的一部分。所以

  • 我有一些r/cerot代码来将几个交叉验证的模型适合于一些数据,但是我收到一条警告消息,说我在查找有关的任何信息时遇到了困难。这是我应该关心的事吗?

  • 我尝试将我的模型添加到管理中。但在我为模型创建类时运行错误。管理员我不知道为什么我的类读取没有定义。 我正在使用python 3.6和Django 2.0 这里是我的调试错误: “C:\Program Files\JetBrains\PyCharm 2017.3\bin\runnerw.exe”C:\Users\FIANUAENA\PyCharm项目\mysite\venv\Scripts\pyt

  • 问题内容: 我在错误日志中收到此警告,并想知道如何在代码中更正此问题。 警告:PHP注意:未定义属性:stdClass :: $ records在440行的script.php中 一些代码: 如果记录存在则响应 如果记录不存在,则响应 我在想类似array_key_exists()的功能,但是对于对象,还有什么吗?还是我走错路了? 问题答案:

  • 我得到了一个定义字段的警告: 我试图将其更改为: 现在它根本不起作用,因为模式无效。 错误: 知道怎么解决吗?

  • 作为一个Vue.js的初学者,我有一个看起来像这样的组件: “data.artist.name”在传递给数据道具的对象中存在且正确。但是我怎样才能摆脱关于嵌套艺术家名称的警告呢? [Vue warn]:计算表达式“data.artist.name”时出错:类型错误:scope.data.artist未定义(在组件中找到): 埃塔:啊,对不起,是的,显示“数据”会有帮助: {“id”:23182,“