ความกังวลสำหรับฉันเกี่ยวกับการใช้ string escape ใน onClick และเมื่อจำนวนอาร์กิวเมนต์เพิ่มขึ้นมันจะยุ่งยากในการรักษา
วิธีการต่อไปนี้จะมีหนึ่ง hop - เมื่อคลิก - ใช้การควบคุมไปยังวิธีการจัดการและวิธีการจัดการขึ้นอยู่กับวัตถุเหตุการณ์ที่สามารถหักเหตุการณ์คลิกและวัตถุที่สอดคล้องกัน
นอกจากนี้ยังมีวิธีที่สะอาดกว่าในการเพิ่มอาร์กิวเมนต์เพิ่มเติมและมีความยืดหยุ่นมากขึ้น
<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 .... ) ตามต้องการ