2

我有以下代码:

public class A extends Composite {
    public String url;
    public String result;
    public A(String url, String result) {
         this.url = url;
         this.result = result;
    }



 public A someObject;
 public VerticalPanel vp = new VerticalPanel();
 public void init() {
    someObject = new A(url, result);
    someObject.setStyleName("style");
    this.vp.add(someObject);
}

但是当我调用 'this.vp.add(...)' 时,它会说:

  (TypeError): Cannot read property '__gwt_resolve' of null

这个怎么可能??

4

3 回答 3

4

您的Composite小部件缺少对 的调用initWidget()。如果它是 aWidget它可能会错过对setElement().

请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCustomWidgets

于 2013-01-11T11:02:30.300 回答
2

add的方法VerticalPanel将小部件作为参数。但是您的 A 类没有扩展 Widget。有关更多信息和如何使用,请参阅此处:http ://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/client/ui/垂直面板.java?r=1288

于 2013-01-11T10:36:07.363 回答
2

您的代码片段有点过于简化,无法真正说明,但您只能Widget's添加到 GWTPanel中,所以您的A类可能不是Widget? 它当然不在你的例子中。此外,一个小部件应该调用setElement(...)以“宣布”它是 DOM 部分。

尝试

public class A extends Widget {
    public String url;
    ...
    // etc

    public A(String url, String result) 
    { 
        setElement( whateverDOMelementYouHave ); 
        ...
    }
}

干杯,

于 2013-01-11T10:36:28.433 回答