Vue: 改进警告信息信息

创建于 2016-10-02  ·  40评论  ·  资料来源: vuejs/vue

它说“Vue 警告:事件单击的处理程序未定义”
它在与事件点击相关的某个地方出错,我有数百个带有点击事件的组件。 我会在哪个组件/文件中收到错误消息?

erroe

improvement

最有用的评论

我正在使用 Vue 2。这不是错误。 这是一条没有用的错误消息。 好吧,Vue 可以以此作为改进错误消息样式并使其具体化的建议。 因此,如果任何开发人员犯了任何错误,他/她都可以通过准确地知道错误在哪里,在很短的时间内修复它。 与 React JS 相比,它们显示组件名称和行号,当然还有错误。

我希望,有错误消息要具体。

所有40条评论

这个提交的问题需要更多信息。 您使用的是 vue 2 还是 vue 1。
这是错误还是建议? 如果出现错误,则在 jsfiddle 上提供可重现的链接。
如果您的任何组件没有处理程序函数,这都不是 vue 问题。

//最好的

我正在使用 Vue 2。这不是错误。 这是一条没有用的错误消息。 好吧,Vue 可以以此作为改进错误消息样式并使其具体化的建议。 因此,如果任何开发人员犯了任何错误,他/她都可以通过准确地知道错误在哪里,在很短的时间内修复它。 与 React JS 相比,它们显示组件名称和行号,当然还有错误。

我希望,有错误消息要具体。

Vue 中有很多消息实际上并没有说太多。 不幸的是,Vue 似乎缺乏安全检查。

我想如果 vue 可以在其警告中添加更多信息 -

组件名称
组件类型
或者
可以为开发环境配置警告消息。

我们确实会尽可能提供组件信息,这可能是一种疏忽。

@just-nobody 请提供缺少哪些消息的具体示例,以便我们可以改进 - 只是抱怨无济于事。

我并不是真的在抱怨; 我认为这只是人们已经知道的事情。 过去我遇到过很多小的边缘情况,这些情况给出了实际问题的奇怪的、不起眼的信息,但却深深扎根于源头,而其他一些问题没有发出错误,而是导致了一些奇怪的渲染漏洞。 有些比其他的更容易追踪,所以我没有费心报告它们,因为我认为这只是我愚蠢,但特别是我实际上创建了一个拉取请求,因为我花了很长时间才弄清楚出了什么问题.

我想现在 2.0.1 出来了,很多问题都已经解决了,但我想我保持沉默是不好的。 给读者的信息:如果您认为这是一个错误,请报告它,即使它最终可能不是一个错误。

@yyx990803即使提供组件的名称键也无济于事。 感谢您光临并添加此问题作为改进。

:) 谢谢埃文

嗨,我最近注意到缺少行号会使调试变得非常困难,尤其是在组件很大的情况下。 我有一个包含数千行的组件。 我收到警告
“[Vue 警告]:渲染函数错误:“TypeError: _vm.values[item.name] 未定义””

我的 Firefox 控制台中有一个组件名称,但没有行号。 对于这种情况,指定行号会非常有用。 当然,我可以将组件拆分为几个较小的组件,或者只是通过编辑器的搜索来挖掘所有这些行,但这不是重点。

请考虑在下一版本中添加行号。 谢谢你。

+1 请添加行号。

我收到下一条消息,

vue.js:577 [Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘长度’”
(在发现)

我知道为什么它会失败,在这个构造“variable.length”上,如果变量 == null。 问题是我有很多“.length”结构,数据来自外部服务。

我也一样@ameoba32
我有“无法读取未定义的属性‘长度’”,但我找不到问题出在哪里。 这是一个很大的网络应用程序,所以很难。
我想我在原因中找到了文件,但我不知道错误到底在哪里。
我是否应该逐行擦除以找到断线? xD

这里和@ameoba32 一样@yyx990803请做点什么。 谢谢!

我非常喜欢 vue,并且已经使用它两年了。 RENDER 错误缺乏特异性是我的第一个抱怨/修复请求。 这个错误要么出现在模板中,要么出现在对应的js代码中。 行号会很有帮助,或者即使问题出在模板或 js 代码中。

有同样的问题

是的。 我也有同样的问题 ;)

unreachable code after return statement[Więcej informacji] app.js:5248:4
unreachable code after return statement[Więcej informacji] app.js line 4957 > eval:5248:4
unreachable code after return statement[Więcej informacji] app.js:5248:4
unreachable code after return statement[Więcej informacji] app.js line 5136 > eval:5248:4

我明白这意味着什么,但我不知道我应该在哪里修复它,并且通过我的所有组件来查找这些问题需要大量的工作。

screen shot 2018-08-23 at 16 48 17

同样在这里。

当我尝试查找错误发生的位置时,vue.common.js 对我来说毫无意义。

我同意,只是源文件中的行号会大大加快调试速度

有什么新鲜事吗? 为什么问题关闭了(因为问题仍然存在)?

希望能修复这个问题! 调试现在太复杂了,我们需要文件名和行号以便调试,请修复

我也同意,我的 .vue 文件太大了,获取确切位置会有所帮助。

我在确定哪个组件方面取得了一些进展,并且可以获得错误的行号(在许多情况下)。 (我使用的是单文件组件)。 但仍有许多调查要做。 我希望在未来公布我的发现。

@gpadilla123上帝速度先生。 期待你的作品。

如果有人仍在为格式错误的 return 语句梳理代码,我发现了在模板中同时使用表达式和函数调用时发生错误的根源:
:class="x=0; getClass()"在这种情况下,删除x=0;消除了警告。 并不是说此列表中的任何人都一定会出现这种情况,而是提醒您检查模板。

即使到今天,它仍然是不清楚的球。 当 vue 正在评估一些我什至没有改变的东西时,我收到一个错误......

Vue 3.0 应该会解决这个问题,因为它会有更好的错误信息,但是 Vue 3.0 的发布日期从 2019 年第二季度末到 2019 年末。太久了,我等不及了,所以我已经破解了一种方法来获取线路错误的数量(对于某些情况)。 被黑的解决方案需要更加健壮并适用于更多情况。

是的,这让我很伤心,我期待至少行号或其他东西能更好地指定

+1

这是致命的。 我们需要正确报告发生错误的行。 目前,当发生错误时,我似乎得到了完全无用的vue.js行号,例如。

[Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘0’”

[Vue warn]: Error in render: "TypeError: Cannot read property 'length' of undefined"
寻找线路会很有趣。 特别是当我的代码中有很多.length时。

像这样的消息就像一场野鹅追逐。 不知道错误的来源:我希望有一个行号、一个 vue 的名称、一个我创建的函数的名称,这不是 Vue 框架的一部分。 这发生在 vue 2.5.17 上。 在这种情况下,vue 开发扩展也没有帮助。

image

很高兴听到这个将在 Vue 3.0 中解决。 同时我发现了一个很好的提示:点击控制台中的错误行指示器,然后在 Vue 的源代码中的同一行上放置一个断点。 然后您可以重新加载页面,调试器将在断点处停止,然后您可以返回堆栈,直到找到您的组件之一,通常错误就在那里。

它并不完美,但它可以帮助您摆脱错误追捕。

[Vue warn]: Error in render: "TypeError: Cannot read property 'length' of undefined"
寻找线路会很有趣。 特别是当我的代码中有很多.length时。

终于找到线了。
如果问题解决了,就不会花那么长时间。

+1,严重缺乏 vue 的控制台日志记录。 以下面的为例。 它告诉我组件堆栈,这很好,但是这里没有引用行号,整个调用堆栈指向编译vue代码,而不是我的组件代码。 组件名称旁边的行号就是它所需要的。

image

我也有调试没有行号的问题...

image

image
接受挑战。

多年来,这一直是一个无赖,现在仍然如此。

我正在浏览这个,希望有人已经有一些超级秘密黑客或者已经有一些更新

+1

TypeError: Cannot read property 'length' of undefined

但我有 30-50.length 我不知道我在哪里做错了。

我们真的需要渲染错误中的行号。

任何解决方法?

可以确认,我在这里只是盯着我的代码......不知道为什么它会失败。

如果 Vue 有缺点,这将是唯一的缺点

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

seemsindie picture seemsindie  ·  3评论

fergaldoyle picture fergaldoyle  ·  3评论

loki0609 picture loki0609  ·  3评论

bfis picture bfis  ·  3评论

robertleeplummerjr picture robertleeplummerjr  ·  3评论