দেশীয় প্রতিক্রিয়া বা প্রতিক্রিয়া দেখায় যেভাবে উপাদানটি আড়াল / প্রদর্শন বা যোগ করা / অপসারণ করা হয় তা অ্যান্ড্রয়েড বা আইওএসের মতো কাজ করে না। আমাদের বেশিরভাগের মতই অনুরূপ কৌশল থাকবে would
View.hide = true or parentView.addSubView(childView)
কিন্তু দেশীয় কাজের প্রতিক্রিয়া জানানোর উপায় সম্পূর্ণ আলাদা। এই ধরণের কার্যকারিতা অর্জনের একমাত্র উপায় হ'ল আপনার ডিওমে আপনার উপাদান অন্তর্ভুক্ত করা বা ডিওএম থেকে অপসারণ।
এখানে এই উদাহরণে আমি বোতাম ক্লিকের উপর ভিত্তি করে পাঠ্য দৃশ্যের দৃশ্যমানতা সেট করতে যাচ্ছি।
এই টাস্কের পিছনে ধারণাটি হ'ল স্টেট নামক একটি স্টেট ভেরিয়েবল তৈরি করা যা প্রাথমিক মানটিকে মিথ্যাতে সেট করা থাকে যখন বোতামটি ক্লিক ইভেন্ট হয় তখন তা টগলসের মান দেয়। এখন আমরা উপাদান তৈরির সময় এই রাষ্ট্র পরিবর্তনশীলটি ব্যবহার করব।
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;