Vaadin Flow:在 onAttach 期间获取当前的 QueryParameters
Vaadin Flow: get current QueryParameters during onAttach
如何在 onAttach
期间可靠地检索 QueryParameters
?
情况:
我的组件出于配置目的需要这些参数,并且由于在初始加载期间未调用 beforeEnter
(方便地具有 .getLocation
),我需要在 onAttach
期间获取相同的信息.
注意:
出于某种原因 VaadinRequest.getCurrent()
returns null
即使 AttachEvent
不知道 Location
,setParameter
的 BeforeEvent
知道。
解决方法(简化):
@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();
/* ... */
}
}
如何在 onAttach
期间可靠地检索 QueryParameters
?
情况:
我的组件出于配置目的需要这些参数,并且由于在初始加载期间未调用 beforeEnter
(方便地具有 .getLocation
),我需要在 onAttach
期间获取相同的信息.
注意:
出于某种原因 VaadinRequest.getCurrent()
returns null
即使 AttachEvent
不知道 Location
,setParameter
的 BeforeEvent
知道。
解决方法(简化):
@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();
/* ... */
}
}