Действия ComponentDidMount с таймаутом - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь выполнить некоторые действия, когда мой компонент монтируется, но не сразу.Мой компонент выглядит примерно так:

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, требуется реакция. Обратный вызов.

Как использовать тайм-аут внутри componentDidMount?

1 Ответ

0 голосов
/ 10 июня 2018

CallbackTo класс имеет async / delay / delayMs методы.Вы можете получить обратный вызов модов с отложенным состоянием следующим образом: $.modState(...).delayMs(1000).void.


Обратите внимание, что асинхронные обратные вызовы в React.js требуют тщательной обработки.Через 1 секунду после монтирования ваш компонент может быть уже размонтирован (теоретически), и если ваш обратный вызов выполняется, когда он уже размонтирован, вы получите ошибку.Я не уверен, предлагает ли scalajs-реагировать что-то в этом отношении поверх React.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...