यदि आप ES6 का उपयोग कर रहे हैं, तो यहां कुछ सरल उदाहरण कोड दिए गए हैं:
import React from 'wherever_react_is';
class TestApp extends React.Component {
getComponent(event) {
console.log('li item clicked!');
event.currentTarget.style.backgroundColor = '#ccc';
}
render() {
return(
<div>
<ul>
<li onClick={this.getComponent.bind(this)}>Component 1</li>
</ul>
</div>
);
}
}
export default TestApp;
ES6 वर्ग निकायों में, फ़ंक्शन को अब 'फ़ंक्शन' कीवर्ड की आवश्यकता नहीं होती है और उन्हें अल्पविराम से अलग करने की आवश्यकता नहीं होती है। आप चाहें तो => वाक्यविन्यास का भी उपयोग कर सकते हैं।
यहां गतिशील रूप से बनाए गए तत्वों के साथ एक उदाहरण दिया गया है:
import React from 'wherever_react_is';
class TestApp extends React.Component {
constructor(props) {
super(props);
this.state = {
data: [
{name: 'Name 1', id: 123},
{name: 'Name 2', id: 456}
]
}
}
getComponent(event) {
console.log('li item clicked!');
event.currentTarget.style.backgroundColor = '#ccc';
}
render() {
<div>
<ul>
{this.state.data.map(d => {
return(
<li key={d.id} onClick={this.getComponent.bind(this)}>{d.name}</li>
)}
)}
</ul>
</div>
);
}
}
export default TestApp;
ध्यान दें कि प्रत्येक गतिशील रूप से बनाए गए तत्व में एक अद्वितीय संदर्भ 'कुंजी' होना चाहिए।
इसके अलावा, यदि आप अपने ऑनक्लिक फ़ंक्शन में वास्तविक डेटा ऑब्जेक्ट (ईवेंट के बजाय) को पास करना चाहते हैं, तो आपको उसे अपने बाइंड में पास करना होगा। उदाहरण के लिए:
नया ऑनक्लिक समारोह:
getComponent(object) {
console.log(object.name);
}
डेटा ऑब्जेक्ट में पासिंग:
{this.state.data.map(d => {
return(
<li key={d.id} onClick={this.getComponent.bind(this, d)}>{d.name}</li>
)}
)}
event.currentTarget.style.backgroundColor = '#ccc';
जब तक आप वास्तव में यह समझ नहीं पाते कि आप क्या कर रहे हैं (अधिकांश समय, तृतीय-पक्ष विजेट को एकीकृत करते समय) सामान से बचें ।