我正在尝试在我的组件安装时执行某些操作,但不是立即执行。我的组件看起来像这样:
object MyComponent {
def apply = compopnent()
class Backend($: BackendScope) {
def render = {
// Some markup
}
def actions() = setTimeout(1000) {
//... Some state modifications
}
}
val component = ScalaComponent.builder[Unit]("My component")
.renderBackend[Backend]
.componentDidMount(f => f.backend.actions()) // HERE!
.build
}
我得到了类型错配。找到SetTimeoutHandle,需要react.Callback。
如何在componentDidMount中使用超时?
答案 0 :(得分:1)
CallbackTo
课程有async
/ delay
/ delayMs
个方法。您可以获得延迟的状态mod回调,如:$.modState(...).delayMs(1000).void
。
请注意,React.js中的异步回调需要小心处理。安装后1秒钟,您的组件可能已经卸载(理论上),如果您的回调在已卸载时运行,则会出现错误。在这方面,我不确定scalajs-react是否在React.js之上提供了任何东西。