- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public void onAlfrescoTicketReceived(Mono<Ticket> ticket) {
ticket
.log()
.subscribe(
consumer -> {
this.sessionService.setTicket(consumer.getTicket());
UI.getCurrent().navigate("route");
});
}
sessionService 可以工作,但 UI.getCurrent 返回 null。有没有办法在订阅内导航?
最佳答案
它可能是在后台线程中执行的。 UI.getCurrent()
仅在 UI 线程内工作。
您需要在仍在 UI 线程中的位置存储对 UI 的引用,或者通过在附加组件上调用 getUI()
来存储对 UI 的引用。如果您的方法在 UI 线程中执行,那么您可以将引用存储在那里。然后调用 UI#access
来执行任何 UI 任务:
public void onAlfrescoTicketReceived(Mono<Ticket> ticket) {
UI ui = UI.getCurrent();
ticket
.log()
.subscribe(
consumer -> {
this.sessionService.setTicket(consumer.getTicket());
ui.access(() -> ui.navigate("route"));
});
}
从后台线程调用时使用 UI#access
可确保 session 被锁定,这样 UI 状态中就不会出现任何冲突。它还确保 UI.getCurrent()
和 VaadinSession.getCurrent()
返回正确的值。
关于java - 如何在 Mono.subscribe 中使用 UI.getCurrent().navigate ("route"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58266305/
我正在尝试检查Powerhell脚本是否以管理员身份运行。 在网上搜索后,我得到了一些运行良好的示例代码。 为了获得WindowsPrincipal对象,我发现了以下两个示例代码。 第一: New-O
Asp.net 团队设计的脚本管理器使得每个页面只存在一个实例 (HttpHandler),我找不到他们扩展像 ScriptManager.GetCurrent 这样的方法的正当理由获取页面内的实例。
不知道为什么当我导航到 amazon.com 或 google.com 并点击浏览器图标进行浏览器操作时,我无法使用 getCurrent() 检索有关当前选项卡的信息。关于我遗漏了什么的任何提示?
这是我的代码: Display.getCurrent().asyncExec(new Runnable() { public void run() {
我有一个安装项目(在 Windows 7 上运行)在提交时启动自定义操作,启动刚刚安装的应用程序。在此应用程序启动期间,我有一个方法可以检查当前用户名以执行某些身份验证。当从此自定义操作启动时,我得到
var windows = chrome.windows.getCurrent( function(windows){ try{ // dont rea
在我的开发机器上,这行代码正确地返回了我的用户名。 public class Constants { public static readonly string Username = Wind
我正在编写一个类来处理在 asp.net、WCF 服务和 WinForms 应用程序中使用的模拟和委托(delegate)。 根据 MSDN , WindowsIdentity.GetCurrent(
ReSharper 警告我可能出现 NullReferenceException WindowsIdentity windowsIdentity = new WindowsIdentity(Windo
我想使用karibu-testing测试Vaadin流组件。在此组件中,我正在使用UI.getCurrent().access {}更新此组件,但是在运行测试时,不会执行access中的代码。当我尝试
我想知道 vaadin 框架中 Page.getCurrent() 需要导入什么,谷歌搜索引导我找到 com.vaadin.server 包,但是eclipse通知我import com.vaadin
应用程序基于 Stripes 和 Spring。每次我打电话FlashScope.getCurrent(..)方法返回 FlashScope 的新干净实例。不过如果我打电话FlashScope.get
我有一个用户,当我尝试使用以下任一方法枚举她的组时System.Security.Principal.WindowsIdentity.GetCurrent().Groups在用户的电脑上 或 Syst
我是 IL 的新手,但据我所知,MoveNext 应该在 Current 之前调用,假设我们有这样的 foreach 语句: foreach (var i in Enumerable.Empty())
我需要知道当前进程是否作为系统运行。在 C# 中,我使用 WindowsIdentity.GetCurrent().IsSystem 来执行此操作,C++ 中的等效项是什么? 我试图避免比较用户名,因
我正在尝试打开一个窗口或弹出窗口并向其传递一些值。我想使用参数进行 POST。 我目前正在使用 vaadin 7.7.6,com.vaadin.server.Page.getCurrent().ope
几个小时以来,我一直被困在一个看似非常愚蠢的问题上,无法继续前进。 基本上,如果我尝试在 ASP.NET Web 表单页面(即 Page_Load)的任何事件处理程序中评估以下内容: ScriptMa
本文整理了Java中com.opengamma.strata.pricer.ZeroRateSensitivity.getCurrency()方法的一些代码示例,展示了ZeroRateSensitiv
本文整理了Java中com.opengamma.strata.pricer.ZeroRatePeriodicDiscountFactors.getCurrency()方法的一些代码示例,展示了Zero
为什么UI.getCurrent vaadin 中的方法返回 null,但 getUI()实际上返回 UI在同样的情况下。例如: @Override public boolean ha
我是一名优秀的程序员,十分优秀!