onClickでの文字列エスケープの使用に関するいくつかの懸念と、引数の数が増えるにつれて、維持するのが面倒になります。
次のアプローチでは、1ホップ(クリック時)でハンドラーメソッドに制御を移動し、イベントオブジェクトに基づいてハンドラーメソッドを使用して、クリックイベントと対応するオブジェクトを差し引くことができます。
また、より多くの引数を追加するためのより明確な方法を提供し、柔軟性を高めます。
<button type="button"
className="btn btn-default"
onClick="invoke"
name='gotoNode'
data-arg1='1234'>GotoNode</button>
JavaScriptレイヤー:
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 ....)を持つことができることです。