जिस तरह से कंपोनेंट छिपाने / दिखाने या जोड़ने / हटाने का काम करता है वैसा ही प्रतिक्रिया या प्रतिक्रिया में एंड्रॉइड या आईओएस में काम नहीं करता है। हममें से ज्यादातर लोग सोचते हैं कि जैसी रणनीति होगी वैसी ही होगी
View.hide = true or parentView.addSubView(childView)
लेकिन देशी काम करने का तरीका पूरी तरह से अलग है। इस तरह की कार्यक्षमता को प्राप्त करने का एकमात्र तरीका अपने घटक को अपने डोम में शामिल करना या डोम से निकालना है।
यहाँ इस उदाहरण में मैं बटन क्लिक पर आधारित पाठ दृश्य की दृश्यता निर्धारित करने जा रहा हूँ।
![यहां छवि विवरण दर्ज करें](https://i.stack.imgur.com/Bivgu.gif)
इस कार्य के पीछे का विचार एक स्टेट वैरिएबल है जिसे स्टेट कहा जाता है, जिसमें बटन पर क्लिक करने की घटना के लिए प्रारंभिक मूल्य सेट होता है, तब यह टॉगल को महत्व देता है। अब हम घटक के निर्माण के दौरान इस राज्य चर का उपयोग करेंगे।
import renderIf from './renderIf'
class FetchSample extends Component {
constructor(){
super();
this.state ={
status:false
}
}
toggleStatus(){
this.setState({
status:!this.state.status
});
console.log('toggle button handler: '+ this.state.status);
}
render() {
return (
<View style={styles.container}>
{renderIf(this.state.status)(
<Text style={styles.welcome}>
I am dynamic text View
</Text>
)}
<TouchableHighlight onPress={()=>this.toggleStatus()}>
<Text>
touchme
</Text>
</TouchableHighlight>
</View>
);
}
}
इस स्निपेट में केवल एक ही चीज़ ध्यान देने योग्य है, renderIf
जो वास्तव में एक फ़ंक्शन है जो इसके पास दिए गए बूलियन मूल्य के आधार पर इसके पास दिए गए घटक को वापस कर देगा।
renderIf(predicate)(element)
renderif.js
'use strict';
const isFunction = input => typeof input === 'function';
export default predicate => elemOrThunk =>
predicate ? (isFunction(elemOrThunk) ? elemOrThunk() : elemOrThunk) : null;