onClick에서 문자열 이스케이프를 사용하는 것과 관련하여 몇 가지 우려 사항이 있으며 인수 수가 증가함에 따라 유지 관리가 번거로울 수 있습니다.
다음 접근 방식에는 클릭 한 번으로 한 번의 홉이 있습니다. 이벤트 객체를 기반으로 핸들러 메소드 및 핸들러 메소드로 제어를 수행하면 클릭 이벤트 및 해당 오브젝트를 공제 할 수 있습니다.
또한 더 많은 인수를 추가하고 더 유연하게 사용할 수있는 더 확실한 방법을 제공합니다.
<button type="button"
className="btn btn-default"
onClick="invoke"
name='gotoNode'
data-arg1='1234'>GotoNode</button>
자바 스크립트 레이어에서 :
invoke = (event) => {
let nameOfFunction = this[event.target.name];
let arg1 = event.target.getAttribute('data-arg1');
//We can add more args as needed...
window[nameOfFunction](arg1)
//hope function is in window.
//Else the respective object need to be used
})
}
여기서 장점은 필요한만큼 인수 (위의 예에서 data-arg1, data-arg2 ....)를 가질 수 있다는 것입니다.