首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面重新加载时,mvp4g历史记录机制失败

页面重新加载时,mvp4g历史记录机制失败
EN

Stack Overflow用户
提问于 2017-03-03 15:12:15
回答 1查看 57关注 0票数 0

我已经为我的mvp4g项目实现了一个历史记录机制。当我遍历页面时,我可以看到url也在改变。但是在重新加载主页以外的任何页面时,总是显示主页而不是所需的页面吗?

这是我的实现:

代码语言:javascript
复制
    @History(type = HistoryConverterType.SIMPLE)
public class CustomHistoryConverter implements HistoryConverter<AppEventBus> {

    private CustomEventBus eventBus;

    @Override
    public void convertFromToken(String historyName, String param, CustomEventBus eventBus) {
        this.eventBus = eventBus;
        eventBus.dispatch(historyName, param);
    }

    public String convertToToken(String eventName, String name) {
        return name;
    }

    public String convertToToken(String eventName) {
        return eventName;
    }

    public String convertToToken(String eventName, String name, String type) {
        return name;
    }

    public boolean isCrawlable() {
        return false;
    }
}

和事件总线相关的代码:

代码语言:javascript
复制
    @Events(startPresenter=PageOnePresenter.class,historyOnStart=true)
public interface CustomEventBus extends EventBusWithLookup {

    @Start
    @Event(handlers = PageOnePresenter.class)
    void start();

    @InitHistory
    @Event(handlers = PageOnePresenter.class)
    void init();

    @Event(handlers = PageTwoPresenter.class, name = "page2", historyConverter = CustomHistoryConverter.class)
    void getPageTwo();

    @Event(handlers = PageThreePresenter.class, name = "page3", historyConverter=CustomHistoryConverter.class)
    void getPageThree();

    @Event(handlers=PageOnePresenter.class, name = "page1", historyConverter=CustomHistoryConverter.class)
    void getPageOne();

    @Event(handlers=PageOnePresenter.class)
    void setPageTwo(HistoryPageTwoView view);

    @Event(handlers=PageOnePresenter.class)
    void setPageThree(HistoryPageThreeView view);
 }
EN

回答 1

Stack Overflow用户

发布于 2017-03-03 17:53:03

HistoryConverter需要改进。

事实上,事件没有参数,你应该返回一个空字符串。更新看起来像这样的HistoryConverter:

代码语言:javascript
复制
@History(type = HistoryConverterType.SIMPLE)
public class CustomHistoryConverter implements HistoryConverter<AppEventBus> {

    private CustomEventBus eventBus;

    @Override
    public void convertFromToken(String historyName, String param, CustomEventBus eventBus) {
        this.eventBus = eventBus;
        // TODO handle the param in cases where you have more than one parameter
        eventBus.dispatch(historyName, param);
    }

    public String convertToToken(String eventName, String name) {
        return name;
    }

    public String convertToToken(String eventName) {
        return "";
    }

    public String convertToToken(String eventName, String name, String type) {
        return name - "-!-" type;
    }

    public boolean isCrawlable() {
        return false;
    }
}

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42572804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档