में कनवर्ट करने में `this` को कैसे हल करें मेरे पास मॉड्यूल है जो ES5
में ठीक काम करता है। मैं इसे ES6
में परिवर्तित कर रहा हूं और रूपांतरण के लिए 6to5
का उपयोग कर रहा हूं। सब कुछ ठीक से पारदर्शी है, लेकिन जब मैं अपना props
सेट करने का प्रयास कर रहा हूं तो मुझे रनटाइम त्रुटि मिलती है। जब मैं debugger
छोड़ता हूं और this
पर देखता हूं, तो मुझे लगता है कि this
EventEmitter
है और कक्षा नहीं है।प्रतिक्रिया मॉड्यूल को ईएस 6 कक्षा
var React = require('react');
import CalendarStore from './../stores/calendar.store.js';
function getAppointments() {
return {appts: CalendarStore.getAppts()}
}
export default class extends React.Component{
constructor(props) {
super(props);
this.props = {
view: 'weeks'
}
}
changeView(child, view) {
this.setProps({view: view});
}
componentWillMount() {
CalendarStore.addChangeListener(this._onChange);
}
_onChange() {
this.setProps(getAppointments());
}
....
};
जगह मैं इस मुद्दे हो रहा है मेरी changeView
समारोह में है: यहाँ मेरी कोड है। जब यह transpiled
नीचे यह ऐसा दिखाई देगा है:
_onChange: {
value: function _onChange() {
this.setProps(getAppointments());
},
writable: true,
configurable: true
}
फिर से, कि समारोह के अंदर, this
मेरी EventEmitter
है। इसे ठीक करने का तरीका क्या है?
क्या आप मुझे एक ब्लॉग या कहीं दिखा सकते हैं जो बताता है कि मिश्रणों द्वारा स्टोरों को कैसे नियंत्रित किया जाना चाहिए? – jhamm
अधिकांश प्रवाह कार्यान्वयन एक प्रदान करते हैं। मिक्स्ड स्टोर से प्रारंभिक स्थिति प्राप्त कर रहा है, स्टोर सुन रहा है, और ऐसा कर रहा है। जब कोई बदलाव होता है तो सेट करें। जब घटक अनमाउंट किया जाता है तो यह श्रोता को भी साफ़ करता है। यहां एक [fluxxor store mixin] का एक उदाहरण दिया गया है (http://fluxxor.com/documentation/store-watch-mixin।एचटीएमएल) – FakeRainBrigand
@FakeRainBrigand क्या होगा अगर मैं प्रवाह का भी उपयोग करता हूं और इस तरह एक डिफ़ॉल्ट मान निर्धारित करता हूं? '_handleStoreChange = (राज्य: ऑब्जेक्ट = {}) => {..} 'मुझे बैबेल के साथ सिंटैक्स त्रुटि मिलती है' रावल्यू ' – tsm