【问题标题】:GWT client - Uncaught TypeError: Cannot read property 'clear_31_g$' of undefinedGWT 客户端 - 未捕获的类型错误:无法读取未定义的属性“clear_31_g$”
【发布时间】:2016-07-27 22:05:06
【问题描述】:

我是 GWT 的新手,正在尝试创建一个小型应用程序。我目前正在为应用程序、通用布局处理程序等组装一个小框架。这可能不是我遇到的最后一个问题,但我在谷歌上找不到任何解决方案。

所以我有一个类类型,它返回给我 Composites。另外,我还有一个,它将这些类存储在 Stack 中(我也尝试过 Vector,我认为 GWT 可能有问题)。没关系。如果我在 Stack 上调用 .clear 方法,我在 Chrome 的检查菜单中会出现上述错误: 未捕获的类型错误:无法读取未定义的属性“clear_31_g$”

如果 GWT 不知道,如何将此方法转换为 javascript 或什么?你知道这里有什么问题吗?

eclipse neon、Java SDK 1.8(也许是这个?)、GWT 2.7.0 和 App Engine 1.9.34 上的 Java 7 设置

谢谢!

edit1:我还找到了包含所有受支持方法的模拟 JRE 类列表 (http://www.gwtproject.org/doc/latest/RefJreEmulation.html) 的页面。现在我明白了,那个 clear 不在 Stack 的列表中,但是 empty 确实,这给了我同样的错误。 :-/

【问题讨论】:

  • 你在null上调用clear方法。
  • 啊天哪,就是这样。甚至错误消息都是描述性的,但我就是看不透它。谢谢! p.s.也许你应该把它写到答题纸上,我可以推送接受它。
  • 好的,我已经发布了答案。我希望它也能帮助其他人。

标签: javascript java gwt


【解决方案1】:

此错误仅表示您尝试在 null 对象(该对象为 undefined)上调用 clear() 方法。

错误信息本身并没有想象的那么清晰。首先,它并不总是与读取属性有关,还与调用方法有关。其次,请记住,您运行的是编译为 javascript 的代码,并且属性(或方法)名称可能与原始名称不同 - 它在运行时添加了类似 _31_g$ 的内容。

【讨论】:

  • “首先,它并不总是与读取属性有关,还与调用方法有关” - 因此,如果我正在调用一个方法,该方法在 JavaSE 中用于给定类,但它不受JRE 仿真(gwtproject.org/doc/latest/RefJreEmulation.html),那么我会得到同样的错误吗?感谢您的帮助,这就是问题所在。
  • 我很高兴能帮上忙 :) 我的意思是错误消息可以区分这两种情况并且是 Cannot call method ... of undefinedCannot read property ... of undefined。如果您调用 JRE 仿真不支持的方法,您将收到类似 The method lineSeparator() is undefined for the type System 错误的错误。如果您使用不在 JRE 仿真中的类,您将收到 No source code is available for type ... 错误(例如 java.awt.Color 类)。
猜你喜欢
  • 2021-12-22
  • 2015-01-06
  • 2017-07-26
  • 2019-02-26
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多