>

입력 컴포넌트에 onKeyPress 리스너가 있습니다. 현재 onKeyListener는 Enter 키를 누르면 무언가를 인쇄합니다.

현재 코드입니다

onKeyPress={this.onHitEnter.bind(this)}/>
onHitEnter = (e) => {
        if (e.key === 'Enter') {
          console.log()
    }

이제 몇 가지 추가 매개 변수를 onHitEnter 메서드에 보내려고합니다. 시도했지만 작동하지 않았습니다

이것은 내가 시도한 것입니다

onKeyPress={this.onHitEnter.bind(this, item, item.id, item.index)}/>
onHitEnter = (e, item, id, index) => {
        if (e.key === 'Enter') {
          console.log("enter")
            console.log(id)
    }

추가 매개 변수를 onHitEnter 메소드로 보내려면 어떻게해야합니까?


  • 답변 # 1

    추가 인수와 함께 bind를 사용하면 추가 인수를 먼저두고 이벤트 객체를 마지막에 놓습니다

    function foo (a, b, event) {
       console.log(arguments) 
    } 
    
    document.querySelector("button").addEventListener("mousedown", foo.bind(this, "a", "b"))
    
    
    <button>Foo</button>
    
    

    따라서 인수를 재정렬해야합니다

    onHitEnter = (item, id, index, e)
    
    

  • 답변 # 2

    다른 곳에서 함수를 바인딩하는 것이 좋습니다.

    es6을 사용하고 있기 때문에이 속기 표현을 사용하여 필요한 데이터를 얻을 수 있습니다.

    onKeyPress={e => this.onHitEnter(e, item, item.id, item.index)}/>
    
    

    식은 이벤트 중에 전달할 인수를 정의합니다.

  • 이전 Python - 파이썬 - 레이블로 산점도 색상을 플롯으로 할당
  • 다음 jquery - 자바 스크립트는 클릭 한 텍스트를 비활성화하고 클릭하지 않은 텍스트는 활성화합니다