具有超时的ComponentDidMount操作

时间:2018-06-09 11:54:47

标签: scala.js scalajs-react

我正在尝试在我的组件安装时执行某些操作,但不是立即执行。我的组件看起来像这样:

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中使用超时?

1 个答案:

答案 0 :(得分:1)

CallbackTo课程有async / delay / delayMs个方法。您可以获得延迟的状态mod回调,如:$.modState(...).delayMs(1000).void

请注意,React.js中的异步回调需要小心处理。安装后1秒钟,您的组件可能已经卸载(理论上),如果您的回调在已卸载时运行,则会出现错误。在这方面,我不确定scalajs-react是否在React.js之上提供了任何东西。