0

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

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

4

1 回答 1

1

CallbackTo类有async//方法delaydelayMs您可以像这样获得延迟状态 mod 回调$.modState(...).delayMs(1000).void


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

于 2018-06-10T20:35:23.257 回答