如何在 "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 会在认为您已完成事件后重新使用事件。

试试看

  1. 在事件上调用 .persist 以防止 React 重新使用它
  2. 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
    }
  }