【问题标题】:GWT super dev mode, SimpleCheckBox.wrap() AssertionErrorGWT 超级开发模式,SimpleCheckBox.wrap() AssertionError
【发布时间】:2014-05-30 19:23:05
【问题描述】:

使用 GWT,我遇到了 SimpleCheckBox.wrap() 方法的问题,因为它在 DevMode 中产生了 AssertionError。我曾经通过添加仅在GWT.isScript() 为真时才执行的代码来解决这个问题。我现在在使用 SuperDevMode 时面临同样的挑战,问题是:有没有一种方法可以在运行时从源代码中识别 superdevmode?​​p>

提前致谢!

附:现在没有快速的方法来摆脱代码中的 .wrap() 调用,所以问题实际上仅限于运行模式识别。

更新。 1:

我创建了一个没有 .wrap() 方法的新“特殊”类,并将这些行添加到我的模块的 gwt.xml 文件中:

<set-property name="superdevmode" value="on"/>
<replace-with class="com.project.client.MyWidgetSuperdevmode">
    <when-type-is class="com.jostleme.jostle.ui.rich.client.MyWidgetProdMode" />
    <when-property-is name="superdevmode" value="on"/>
</replace-with>

并尝试了多种方法:通过书签编译,以旧方式重新编译项目,重新启动常规和代码服务器应用程序;并且在 sourcemaps 中只能看到类 MyWidgetProdMode。我究竟做错了什么?编译时会加载新类吗?

【问题讨论】:

  • 如果断言失败,这强烈暗示您使用 SimpleCheckBox.wrap 不正确,可能是包装了一个未附加的元素,或者试图包装一个已经是子元素的元素另一个小部件。这两者都可能导致内存泄漏 - 尽量避免断言条件,而不是避免编译断言。
  • 科林,是的,这是真的。小部件的初始化发生了,小部件尚未附加。稍后我会看看在附加时设置复选框值有多大。

标签: gwt checkbox assert gwt-super-dev-mode gwt-dev-mode


【解决方案1】:

有一个superdevmode 属性可以在延迟绑定规则中使用,但在其他方面没有类似于isScript() 的方法来检测您是否处于超级开发模式。该属性的值可以是onoff

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多