我想要一个可以在任何地方使用的加载微调器。所以我创建了一个 BoolHandler:
val loadingSpinnerEvents = createBoolHandler()
绑定到加载微调器 div:
val loadingSpinner = div(
hidden <-- loadingSpinnerEvents
, Icon.loadingIcon
)
所以我做了以下事情:
def reducer(previousState: State, action: Action): State = {
var st = previousState
loadingSpinnerEvents <-- Observable.create { obs =>
obs.next(false)
st = newState(previousState, action)
Future {
// do the long running work
}.onComplete { _ =>
obs.next(true)
obs.complete()
}
}
st
}
根据 println 输出,布尔值被正确且立即处理。
问题是元素更改仅在整个工作完成后才会显示。
有没有办法强制执行,或者我错过了什么。