में इसका कोई कारण किसी कारण से प्रतिक्रिया ईवेंट हैंडलर में इसका मूल्य खो जा रहा है। डॉक्स मैंने सोचा था कि प्रतिक्रिया यहाँ कुछ सामान किया यकीन है कि यह सही मान के लिए स्थापित किया गया था बनाने के लिए पढ़नारिएक्ट इवेंट हैंडलर
निम्नलिखित के रूप में मैं
import React from 'react';
export default class Observer extends React.Component {
handleClick() {
console.log(this); //logs undefined
}
render() {
return (
<button onClick={this.handleClick}>Click</button>
);
}
}
उम्मीद थी काम नहीं करता है लेकिन यह करता है:
import React from 'react';
export default class Observer extends React.Component {
handleClick() {
console.log(this); //logs Observer class instance
}
render() {
return (
<button onClick={this.handleClick.bind(this)}>Click</button>
);
}
}
प्रतिक्रिया और ईएस 6 मेरे लिए नया है लेकिन यह सही व्यवहार नहीं लगता है?
यह सही व्यवहार क्यों नहीं होगा? क्या jsx उस फ़ंक्शन को अस्पष्ट करता है जिसे आप 'ऑनक्लिक' के लिए बना रहे हैं? – Bergi
इसका ईएस 6 के साथ कुछ लेना देना नहीं है। यह ईएस 5 में भी काम नहीं करेगा। – Bergi
@ बर्गि स्वीकृत उत्तर अन्यथा कहता है। ईएस 5 में आप [React.createClass] (https://facebook.github.io/react/docs/top-level-api.html#react.createclass) का उपयोग करेंगे और आपको मैन्युअल रूप से बाध्य नहीं करना होगा। तो हाँ, प्रतिक्रिया घटक बनाने के लिए ES6 का उपयोग करके ओपी के साथ यह सबकुछ करना है। –