GWT超级开发模式,SimpleCheckBox.wrap()断言错误
使用GWT时,我遇到了GWT超级开发模式,SimpleCheckBox.wrap()断言错误,gwt,checkbox,assert,gwt-super-dev-mode,gwt-dev-mode,Gwt,Checkbox,Assert,Gwt Super Dev Mode,Gwt Dev Mode,使用GWT时,我遇到了SimpleCheckBox.wrap()方法的问题,因为它在DevMode中生成了AssertionError。我曾经通过添加只有在GWT.isScript()为true时才执行的代码来解决这个问题。我现在在SuperDevMode方面也面临同样的挑战,问题是:有没有一种方法可以在运行时从源代码中识别SuperDevMode 提前谢谢 另外,现在没有快速的方法可以摆脱代码中的.wrap()调用,所以问题仅限于运行模式识别 Upd。1: 我使用no.wrap()方法创建了一
SimpleCheckBox.wrap()
方法的问题,因为它在DevMode中生成了AssertionError。我曾经通过添加只有在GWT.isScript()
为true时才执行的代码来解决这个问题。我现在在SuperDevMode方面也面临同样的挑战,问题是:有没有一种方法可以在运行时从源代码中识别SuperDevMode
提前谢谢
另外,现在没有快速的方法可以摆脱代码中的.wrap()
调用,所以问题仅限于运行模式识别
Upd。1:
我使用no.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>
并尝试了多种方法:通过书签编译,以旧的方式重新编译项目,重新启动常规和codeserver应用程序;在sourcemaps中,只能看到MyWidgetProdMode类。我做错了什么?编译时会加载新类吗?有一个
superdevmode
属性,您可以在延迟绑定规则中使用,但是没有类似于isScript()
的方法来检测您是否在superdevmode中。如果断言失败,则该属性的值可以为on或off,这强烈表明您使用的SimpleCheckBox.wrap不正确,可能是通过包装未附加的元素,或者尝试包装已经是另一个小部件子级的元素。这两种情况都可能导致内存泄漏——尽量避免断言条件,而不是避免编译断言。科林,是的,这是真的。小部件的初始化发生了,小部件还没有连接。稍后,我将查看设置复选框值的意义有多大。