【问题标题】:When is using runNow() allowed in scalajs-react and why?scalajs-react 何时允许使用 runNow(),为什么?
【发布时间】:2017-03-21 22:19:09
【问题描述】:

runNow 方法here 有文档:

  /**
   * Executes this callback, on the current thread, right now, blocking until complete.
   *
   * In most cases, this type is passed to scalajs-react such that you don't need to call this method yourself.
   *
   * Exceptions will not be caught. Use [[attempt]] to catch thrown exceptions.
   */

这有点含糊,引出了四个问题:

  1. 什么时候我不应该打电话给runNow()?为什么 ?
  2. 是不是我不应该(或不必)调用runNow() 的唯一情况是当我使用带有==>--> 的回调时(如here 所述)? (我猜这是真的)或者当框架为我调用runNow() 时还有其他情况吗?
  3. 什么时候允许我打电话给runNow()?为什么?
  4. 为什么不一直使用runNow 呢?这会导致任何问题吗?如果是,是什么?

我目前的理解是可以(甚至需要)从 scala-function that has been passed as a callback 调用 runNow() 到包装的原生 JS 反应组件。例如here

但是我不确定。

有人可以澄清什么时候可以打电话,什么时候不可以打电话runNow() 吗?

【问题讨论】:

    标签: scala.js scalajs-react


    【解决方案1】:

    我明天会提供更详细的答案,但首先,您是否阅读过Callback 文档? https://github.com/japgolly/scalajs-react/blob/master/doc/CALLBACK.md

    【讨论】:

    • 嗯,感谢您的回答,实际上,自从我上次阅读文档以来,似乎已经更新了文档!所以我只读了旧版本。需要阅读新的,看看它如何回答问题。
    • 不用担心。作为作者,我认为清楚的并非如此,而且很难知道缺少什么或令人困惑的地方。如果有什么不合理的地方,请大声告诉我和/或随时 PR 任何改进。
    • 天哪,你能评论一下这个问题吗?它又出现了。我在文档中找不到答案。我真的不明白是谁在执行 Callback ?在文档中它说:正如上面强调的那样,“回调意味着由 React 在其选择的时间和频率上执行。”这是什么时候? scala-js 对这些回调做了什么?他们最终是如何被处决的?
    • 我的意思是,普通反应中对应的概念(回调)是什么?我在这里找不到它:facebook.github.io/react/docs/hello-world.html 这些回调(在 scalajs-react 中)来自哪里?为什么它们甚至存在于 scalajs-react 中?在反应文档中没有太多提及回调 - 例如在反应文档网页的左侧找不到它们)。那么为什么他们在 scalajs-react 中被特别对待(有一长页的文档专门用于它:github.com/japgolly/scalajs-react/blob/master/doc/CALLBACK.md)?
    • React 有一个回调的概念,它只是经常隐含并在文档中有所暗示,例如“此时不要调用它”、“blah 仅在 blah 时有效”。由于 React JS 是无类型的,scalajs-react 是有类型的,因此回调概念和执行语义分离在 Scala 中明确表示。后端也是如此。
    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 2017-03-18
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 2013-04-11
    • 1970-01-01
    相关资源
    最近更新 更多