मैं मूल देशी, प्रतिक्रिया.जेएस, और जावास्क्रिप्ट प्रतिक्रिया में एक पूर्ण नौसिखिया हूँ। मैं एंड्रॉइड डेवलपर हूं इसलिए आरएन को एक कोशिश देना चाहूंगा।यह देशी कैसे प्रतिक्रिया मूल में अपरिभाषित है?
असल में, अंतर onPress
में है;
इस कोड से पता चलता 'undefined'
जब टॉगल() चलाता है:
class LoaderBtn extends Component {
constructor(props) {
super(props);
this.state = { loading: false };
}
toggle() {
console.log(this.state);
// let state = this.state.loading;
console.log("Clicked!")
// this.setState({ loading: !state })
}
render() {
return (
<Button style={{ backgroundColor: '#468938' }} onPress={this.toggle}>
<Text>{this.props.text}</Text>
</Button>
);
}
}
लेकिन इस कोड काम करता है:
class LoaderBtn extends Component {
constructor(props) {
super(props);
this.state = { loading: false };
}
toggle() {
console.log(this.state);
// let state = this.state.loading;
console.log("Clicked!")
// this.setState({ loading: !state })
}
render() {
return (
<Button style={{ backgroundColor: '#468938' }} onPress={() => {this.toggle()}}>
<Text>{this.props.text}</Text>
</Button>
);
}
}
तुम मुझे अंतर, कृपया व्याख्या कर सकते हैं?
जावा/Kotlin हम विधि संदर्भ है, मूल रूप से यह समारोह गुजरता है, तो हस्ताक्षर, एक ही हैं onPress =() => {}
और toggle =() => {}
लेकिन जे एस में यह काम नहीं करता :(
यह आलेख बिल्कुल वैसा ही है जो मुझे समझने की आवश्यकता है कि क्या हो रहा है। एकमात्र प्रश्न यह प्रति घटक तत्कालता के बाद बनाया गया है? –
मेरा मतलब है, मुझे वास्तव में उस संपत्ति वाक्यविन्यास पसंद है, लेकिन क्या यह प्रदर्शन को प्रभावित करता है? –
@ निकक्रैव \t निर्भर करता है। पृष्ठ पर सैकड़ों घटक नहीं होने पर किसी भी सार्थक तरीके से नहीं। सामान्य जेएस में काफी तेज़ है, और कई अन्य प्रतिक्रिया अनुकूलन हैं जो इससे अधिक प्रभावशाली होंगे (उदा।, 'चाहिएकंपोनेंट अपडेट करें' टाइप करें)। –