如何在 "onClick" 之后获取元素
How to get element after "onClick"
我使用 scalajs-react,不明白为什么它不起作用
求助,好像很简单
<.dev()(^.onClick ==> {(e: ReactEventFromHtml) => handler(e)})
def handler(e: ReactEventFromHtml): Callback = {
Callback {
val elem = e.target //here we get elem = null
//----- any code ----
}
}
React 会在认为您已完成事件后重新使用事件。
试试看
- 在事件上调用
.persist
以防止 React 重新使用它
- 从
Callback
的 外部 事件中提取您需要的信息。我将举两个例子来说明如何做到这一点:
def handleBad(e: ReactEventFromHtml): Callback =
Callback {
println("target = " + e.target) // <--------- BAD
}
def handleGood1(e: ReactEventFromHtml): Callback = {
val target = e.target
Callback {
println("target = " + target) // <----------- GOOD
}
}
def handleGood2(e: ReactEventFromHtml): Callback =
e.extract(_.target) { target =>
Callback {
println("target = " + target) // <--------- GOOD
}
}
我使用 scalajs-react,不明白为什么它不起作用
求助,好像很简单
<.dev()(^.onClick ==> {(e: ReactEventFromHtml) => handler(e)})
def handler(e: ReactEventFromHtml): Callback = {
Callback {
val elem = e.target //here we get elem = null
//----- any code ----
}
}
React 会在认为您已完成事件后重新使用事件。
试试看
- 在事件上调用
.persist
以防止 React 重新使用它 - 从
Callback
的 外部 事件中提取您需要的信息。我将举两个例子来说明如何做到这一点:
def handleBad(e: ReactEventFromHtml): Callback =
Callback {
println("target = " + e.target) // <--------- BAD
}
def handleGood1(e: ReactEventFromHtml): Callback = {
val target = e.target
Callback {
println("target = " + target) // <----------- GOOD
}
}
def handleGood2(e: ReactEventFromHtml): Callback =
e.extract(_.target) { target =>
Callback {
println("target = " + target) // <--------- GOOD
}
}