Javascript Kotlinx html参考事件
我已经注意到代码库中的以下函数,它使用,并且很难完全理解:Javascript Kotlinx html参考事件,javascript,html,reactjs,kotlin,Javascript,Html,Reactjs,Kotlin,我已经注意到代码库中的以下函数,它使用,并且很难完全理解: private fun <E : HTMLElement> Tag.xrefImpl(prop: KMutableProperty0<E?>) = this.consumer.onTagEvent(this, "ref", { prop.set(it.asDynamic()) }) private-fun-Tag.xrefImpl(prop:KMutableProperty0)= this.consu
private fun <E : HTMLElement> Tag.xrefImpl(prop: KMutableProperty0<E?>) =
this.consumer.onTagEvent(this, "ref", { prop.set(it.asDynamic()) })
private-fun-Tag.xrefImpl(prop:KMutableProperty0)=
this.consumer.onTagEvent(this,“ref”{prop.set(it.asDynamic())})
据我在谷歌上了解,
asDynamic
是一种kotlin js方法,它只会抑制类型检查。好的,但其余部分还不清楚。对其内部内容不是很详细,即consumer
、ref
和onTagEvent
。最重要的是,为什么参数类型是KMutableProperty0
?这段代码使用了kotlin惯用法和高级功能,因此最好一步一步地检查它
- 首先,
是xRefImpl
的扩展函数,因此有了标记
实例,就可以调用这个新方法标记
- 其次,
实际上是一个react属性,它允许获取对组件的引用。下面是一个来自中国的例子ref
<input type="text"
ref={(input) => { this.textInput = input; }} />
如果去掉所有kotlin和react习惯用法,代码this.consumer.onTagEvent(this,“ref”、{prop.set(it.asDynamic())}
只执行prop=this.getComponent()
。因此,该方法的目的是获取部件参考
最后,由于参数是KMutableProperty0
,因此它允许将组件绑定到字段,如下所示
xrefImpl(this::component)
xrefImpl(this::component)