当击中"返回"时,GWTP app的奇怪行为和#34;前进" Web浏览器按钮?

时间:2014-04-28 16:54:23

标签: gwtp

我正在使用GWTP,我发现了这个问题。

我在CustPresenter中有这段代码:

private List<String> dataList=new List<String>();
@Ovvrride
public onBind(){
   myTextBox.setText("Test");
   dataList.add("test");
}

好的,现在第一次打开页面,页面显示文本框中有字符串&#34; Text&#34; &安培; dataList有&#34; test&#34;值。在那个页面上,我点击了&#34; Go Back&#34;和#34;前进&#34; Web浏览器按钮(如Chrome或IE)。点击&#34;返回&#34;,然后它将显示上一页。点击&#34;前进&#34;它将显示客户页面&amp;我仍然看到字符串&#34; Text&#34;在客户页面的文本框中,但dataList没有&#34; test&#34;值?

发生了什么事?

是GWTP的错误还是我做错了什么?

注意:我正在使用GWT 2.50去年版本

1 个答案:

答案 0 :(得分:1)

首次实例化Presenter时,onBind()方法只调用一次。因此,它会根据您的需要填充TextBoxdataList

然后,当您再次点击后退并再次前进时,您看到的View是第一次调用onBind()时填充的onBind()。按向前不会再次运行ArrayList所以您可能会以某种方式重新实例化onBind(),然后不填充它,因为@Override public onBind(){ private List<String> dataList = new ArrayList<String>(); myTextBox.setText("Test"); dataList.add("test"); } 已被调用。

试试这个:

onBind()

或者只需将onReset()更改为onReveal()或{{1}},因为只要展示了演示者,就会调用这些方法。

有些知识渊博的人可能想在此纠正我。