【发布时间】:2019-09-19 12:38:31
【问题描述】:
我有一个小可见微调器的以下课程:
@Tag("granite-spinner")
@NpmPackage(value = "@granite-elements/granite-spinner", version = "3.0.0")
@JsModule("@granite-elements/granite-spinner/granite-spinner.js")
public class BusyComponent extends Component implements HasEnabled {
@Override
public void onEnabledStateChanged(boolean enabled) {
getElement().setProperty("active", enabled);
}
}
这在我的 MainView 中调用:
@Route("")
@PWA(name = "Project Base", shortName = "Project Base")
@Push
public class MainView extends VerticalLayout implements PageConfigurator {
public MainView() {
UI currUI = UI.getCurrent();
final BusyComponent bc = new BusyComponent();
final Button button = new Button("Click me");
button.addClickListener(event -> {
button.setEnabled(false);
bc.setEnabled(true);
new Thread(() -> {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
currUI.access(() -> {
button.setEnabled(true);
bc.setEnabled(false);
});
}).start();
});
add(bc);
add(button);
}
}
按钮在我点击的那一刻被禁用并在 3 秒后启用。但 Spinner 继续旋转。不知何故,属性更改未更新。有人知道为什么吗?
【问题讨论】: