Vaadin Flow:在 onAttach 期间获取当前的 QueryParameters

Vaadin Flow: get current QueryParameters during onAttach

如何在 onAttach 期间可靠地检索 QueryParameters

情况:

我的组件出于配置目的需要这些参数,并且由于在初始加载期间未调用 beforeEnter(方便地具有 .getLocation),我需要在 onAttach 期间获取相同的信息.


注意:

出于某种原因 VaadinRequest.getCurrent() returns null

即使 AttachEvent 不知道 LocationsetParameterBeforeEvent 知道。

解决方法(简化):

@Route("workaround")
public class Workaround extends FlexLayout implements AttachNotifier, HasUrlParameter<String> {
    private Location currentLocation = null;

    /* ... */

    @Override
    public void setParameter(BeforeEvent event, @OptionalParameter String parameter) {
        // called before onAttach
        currentLocation = event.getLocation();
    }

    @Override
    protected void onAttach(AttachEvent attachEvent) {
        super.onAttach(attachEvent);

        QueryParameters qm = currentLocation.getQueryParameters();
        /* ... */
    }
}