scalajs中的反应回调是什么?

时间:2016-09-25 10:08:58

标签: reactjs scala.js scalajs-react

Here写道:

  

包含CallbackTo [A]类型,它捕获指定的效果   在React回调中使用。

在此上下文中什么是React回调?

1 个答案:

答案 0 :(得分:1)

据我所知,只是回调的正常含义 - 为响应事件而调用的函数。因此,例如在React Component中,有许多函数,如componentDidMount,在组件生命周期的不同阶段调用。在scalajs-react中,这些实现为返回CallbackTo[Unit]的函数,由于类型别名,它也可以写为Callback。例如,在向componentDidMount添加ReactComponentB回调时,我们会使用def componentDidMount(f: DuringCallbackM[P, S, B, N] => Callback): ReactComponentB[P, S, B, N]

在javascript中,组件应该在componentDidMount函数(或其他回调)中立即运行事件的任何副作用。在scalajs-react中,组件将这些效果包装在Callback中,并返回该效果。这允许scalajs-react系统延迟Callback中代码的实际执行 - 稍后通过调用runNow()来完成。这也意味着Callbacks使用mapflatMap>>等进行组合。除非runNow()最终被调用,否则它们不会运行,所以如果你不是将Callback返回到其他代码以便稍后执行,只是创建它将无效。

much more about Callback in the docs