TextInput की मूल बातें और कीबोर्ड प्रकार
TextInput रेंडर करें, onChangeText से उसे स्थिति के साथ बाँधें, ईमेल या संख्यात्मक input के लिए कीबोर्ड प्रकार कॉन्फ़िगर करें और Return कुंजी की घटना सँभालें।
TextInput की मूल बातें और कीबोर्ड प्रकार, CoddyKit पर React Native Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह React Native Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Native Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
TextInput कॉम्पोनेंट
TextInput React Native का वह कॉम्पोनेंट है, जो उपयोगकर्ताओं से कीबोर्ड इनपुट लेने के लिए उपयोग होता है। यह iOS और Android दोनों पर मूल टेक्स्ट फ़ील्ड के रूप में रेंडर होता है और उपयोगकर्ताओं को प्लेटफ़ॉर्म का स्वाभाविक टाइपिंग अनुभव देता है, जिसमें स्वतः सुधार, अनुमानित टेक्स्ट और सिस्टम कीबोर्ड शॉर्टकट शामिल हैं। इसे react-native से इंपोर्ट करें और कीबोर्ड की आवश्यकता वाले किसी भी इनपुट के लिए उपयोग करें: सर्च बॉक्स, लॉगिन फ़ॉर्म, सेटिंग फ़ील्ड और चैट संदेश लिखने वाले फ़ील्ड। बिना शैली के iOS पर TextInput का बॉर्डर दिखाई नहीं देता — इसे हमेशा शैली दें, ताकि उपयोगकर्ता इसे देख सकें।
import { TextInput, View, StyleSheet } from 'react-native';
import { useState } from 'react';
export default function BasicInput() {
const [text, setText] = useState('');
return (
<View style={{ padding: 16 }}>
<TextInput
value={text}
onChangeText={setText}
placeholder='Type something here...'
style={styles.input}
/>
</View>
);
}
const styles = StyleSheet.create({
input: {
borderWidth: 1,
borderColor: '#ccc',
borderRadius: 10,
paddingHorizontal: 14,
paddingVertical: 12,
fontSize: 16,
backgroundColor: '#fff',
},
});onChangeText बनाम onChange
टेक्स्ट इनपुट पर प्रतिक्रिया देने का सबसे सामान्य तरीका onChangeText कॉलबैक है। इसे अपने तर्क के रूप में सीधे नई टेक्स्ट स्ट्रिंग मिलती है, इसलिए इसे useState सेटर को देना आसान होता है: onChangeText={setText}। निम्न-स्तरीय onChange कॉलबैक को पूरा इवेंट ऑब्जेक्ट (event.nativeEvent.text) मिलता है — यह तब उपयोगी है, जब आपको कर्सर की स्थिति जैसे अन्य इवेंट मेटाडेटा की भी आवश्यकता हो। अधिकांश उपयोगों में onChangeText अधिक सरल और पसंदीदा है। onChange का उपयोग तभी करें, जब आपको मूल इवेंट का विवरण चाहिए।
import { TextInput } from 'react-native';
import { useState } from 'react';
function TextInputExample() {
const [text, setText] = useState('');
return (
<>
{/* Simple: receives the string directly */}
<TextInput
onChangeText={(newText) => setText(newText)}
// shorthand equivalent:
// onChangeText={setText}
/>
{/* Advanced: receives the full event object */}
<TextInput
onChange={(event) => {
console.log('text:', event.nativeEvent.text);
console.log('selection:', event.nativeEvent.selection);
}}
/>
</>
);
}अलग-अलग इनपुट के लिए कीबोर्ड प्रकार
keyboardType प्रॉप यह नियंत्रित करता है कि OS कौन-सा कीबोर्ड रूप दिखाए। संख्यात्मक इनपुट के लिए 'numeric' संख्या-पैड दिखाता है। ईमेल के लिए 'email-address' में @ और . कुंजियाँ प्रमुख रूप से शामिल होती हैं। 'phone-pad' फ़ोन डायलर का लेआउट दिखाता है। 'decimal-pad' numeric जैसा होता है, लेकिन इसमें दशमलव बिंदु भी शामिल होता है। 'url' में / और .com शॉर्टकट दिखते हैं। सही कीबोर्ड प्रकार का उपयोग उपयोगिता बढ़ाता है — इससे डेटा दर्ज करने के लिए आवश्यक कीस्ट्रोक कम होते हैं और उपयोगकर्ता अमान्य वर्ण टाइप नहीं कर पाते।
import { View, TextInput, Text, StyleSheet } from 'react-native';
export default function KeyboardTypesDemo() {
return (
<View style={{ padding: 16, gap: 12 }}>
<TextInput style={styles.input} keyboardType='default' placeholder='Default text' />
<TextInput style={styles.input} keyboardType='email-address' placeholder='email@example.com' />
<TextInput style={styles.input} keyboardType='numeric' placeholder='Enter a number' />
<TextInput style={styles.input} keyboardType='phone-pad' placeholder='Phone number' />
<TextInput style={styles.input} keyboardType='decimal-pad' placeholder='Price (0.00)' />
<TextInput style={styles.input} keyboardType='url' placeholder='https://...' />
</View>
);
}
const styles = StyleSheet.create({
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 8, padding: 12, fontSize: 16, backgroundColor: '#fff' },
});पासवर्ड के लिए सुरक्षित टेक्स्ट इनपुट
पासवर्ड फ़ील्ड के लिए secureTextEntry={true} सेट करें, ताकि टाइप किए गए वर्ण बुलेट बिंदुओं से छिप जाएँ। संवेदनशील डेटा वाले किसी भी फ़ील्ड — पासवर्ड, PIN और सुरक्षा कोड — के लिए यह आवश्यक है। स्थिति में showPassword बूलियन का प्रबंधन करके और secureTextEntry को बदलकर आप पासवर्ड दिखाने/छिपाने का टॉगल जोड़ सकते हैं। पासवर्ड फ़ील्ड पर autoCapitalize='none' और autoCorrect={false} भी सेट करें — टाइप करते समय स्वतः सुधार या बड़े अक्षर उपयोगकर्ता का पासवर्ड नहीं बदलने चाहिए।
import { TextInput, TouchableOpacity, Text, View, StyleSheet } from 'react-native';
import { useState } from 'react';
export default function PasswordInput() {
const [password, setPassword] = useState('');
const [visible, setVisible] = useState(false);
return (
<View style={styles.wrapper}>
<TextInput
value={password}
onChangeText={setPassword}
secureTextEntry={!visible}
autoCapitalize='none'
autoCorrect={false}
placeholder='Password'
style={styles.input}
/>
<TouchableOpacity
style={styles.toggle}
onPress={() => setVisible(v => !v)}
>
<Text style={{ fontSize: 18 }}>{visible ? '🙈' : '👁'}</Text>
</TouchableOpacity>
</View>
);
}
const styles = StyleSheet.create({
wrapper: { flexDirection: 'row', alignItems: 'center', borderWidth: 1, borderColor: '#ccc', borderRadius: 10, paddingHorizontal: 14 },
input: { flex: 1, paddingVertical: 12, fontSize: 16 },
toggle: { paddingLeft: 8 },
});autoCapitalize और autoCorrect
autoCapitalize नियंत्रित करता है कि OS पहले अक्षर को कब बड़ा करे। मान: 'none' (कभी बड़ा न करें), 'sentences' (प्रत्येक वाक्य का पहला अक्षर, डिफ़ॉल्ट), 'words' (प्रत्येक शब्द का पहला अक्षर), 'characters' (हर अक्षर)। उपयोगकर्ता नाम, ईमेल पते और पासवर्ड के लिए 'none' का उपयोग करें। नाम वाले फ़ील्ड के लिए 'words' का उपयोग करें। autoCorrect={false} स्वतः सुधार को पूरी तरह बंद करता है, जो उपयोगकर्ता नाम, तकनीकी शब्दों या ऐसे किसी भी फ़ील्ड के लिए आवश्यक है जहाँ उपयोगकर्ता जानता है कि वह क्या टाइप कर रहा है।
import { View, TextInput, StyleSheet } from 'react-native';
export default function FormInputs() {
return (
<View style={{ padding: 16, gap: 12 }}>
{/* Name: capitalize each word, allow autocorrect */}
<TextInput
style={styles.input}
placeholder='Full name'
autoCapitalize='words'
autoCorrect={true}
/>
{/* Username: no caps, no autocorrect */}
<TextInput
style={styles.input}
placeholder='@username'
autoCapitalize='none'
autoCorrect={false}
/>
{/* Email: no caps, no autocorrect */}
<TextInput
style={styles.input}
placeholder='Email address'
keyboardType='email-address'
autoCapitalize='none'
autoCorrect={false}
/>
</View>
);
}
const styles = StyleSheet.create({
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 8, padding: 12, fontSize: 16 },
});returnKeyType और onSubmitEditing
returnKeyType प्रॉप कीबोर्ड की Return कुंजी पर दिखने वाला लेबल बदलता है: 'done', 'go', 'next', 'search', 'send'। यह बताने के लिए 'next' का उपयोग करें कि Return दबाने पर अगला फ़ील्ड सक्रिय होगा। उपयोगकर्ता के Return कुंजी दबाने पर onSubmitEditing कॉलबैक चलता है। returnKeyType='next' को onSubmitEditing के साथ मिलाकर अगले TextInput को प्रोग्राम के माध्यम से ref द्वारा सक्रिय करें — इससे फ़ॉर्म फ़ील्ड के बीच मोबाइल उपयोगकर्ताओं की अपेक्षा के अनुसार सहज, टैब-जैसा नेविगेशन बनता है।
import { View, TextInput, StyleSheet, useRef } from 'react-native';
export default function MultiFieldForm() {
const emailRef = useRef(null);
const passwordRef = useRef(null);
return (
<View style={{ padding: 16, gap: 12 }}>
<TextInput
ref={emailRef}
style={styles.input}
placeholder='Email'
keyboardType='email-address'
returnKeyType='next'
onSubmitEditing={() => passwordRef.current?.focus()}
/>
<TextInput
ref={passwordRef}
style={styles.input}
placeholder='Password'
secureTextEntry
returnKeyType='done'
onSubmitEditing={() => console.log('Form submitted!')}
/>
</View>
);
}
const styles = StyleSheet.create({
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 8, padding: 12, fontSize: 16 },
});बहु-पंक्ति TextInput
बायो, संदेश या टिप्पणी जैसे कई पंक्तियों वाले टेक्स्ट के लिए multiline प्रॉप जोड़ें। उपयोगकर्ता के नई पंक्तियाँ लिखने पर TextInput अपने-आप फैलता है और नई पंक्ति वाले अक्षरों को सपोर्ट करता है। शुरुआती ऊँचाई सेट करने के लिए Android पर numberOfLines का उपयोग करें (iOS पर आकार अपने-आप निर्धारित होता है)। textAlignVertical: 'top' स्टाइल (केवल Android) टेक्स्ट को इनपुट बॉक्स के लंबवत केंद्र से शुरू होने से रोकती है। iOS पर, स्पष्ट ऊँचाई सेट न होने पर multiline इनपुट अपने कंटेंट के अनुसार अपने-आप बढ़ते हैं। संदेश लिखने वाले फ़ील्ड के लिए maxLength को अक्षर-गणना दिखाने वाले डिस्प्ले के साथ मिलाकर उपयोग करें।
import { TextInput, Text, View, StyleSheet } from 'react-native';
import { useState } from 'react';
export default function BioInput() {
const [bio, setBio] = useState('');
const MAX_LENGTH = 200;
return (
<View style={{ padding: 16 }}>
<TextInput
value={bio}
onChangeText={setBio}
placeholder='Tell us about yourself...'
multiline
numberOfLines={4} // Android: initial height
maxLength={MAX_LENGTH}
style={styles.input}
textAlignVertical='top' // Android: align text to top
/>
<Text style={styles.counter}>
{bio.length}/{MAX_LENGTH}
</Text>
</View>
);
}
const styles = StyleSheet.create({
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 10, padding: 12, fontSize: 15, minHeight: 100 },
counter: { textAlign: 'right', color: '#999', fontSize: 12, marginTop: 4 },
});फ़ोकस, ब्लर और onFocus / onBlur इवेंट
जब उपयोगकर्ता TextInput पर टैप करता है (कीबोर्ड दिखाई देता है), तब TextInput onFocus चलाता है और जब उपयोगकर्ता उससे बाहर टैप करता है (कीबोर्ड छिप जाता है), तब onBlur चलाता है। इनका उपयोग सहायक टेक्स्ट दिखाने या छिपाने, सक्रिय स्थिति बताने के लिए बॉर्डर का रंग बदलने या फ़ील्ड-स्तरीय सत्यापन शुरू करने के लिए करें। एक सामान्य तरीका यह है कि फ़ील्ड का सत्यापन उपयोगकर्ता के उसे छोड़ने के बाद (ब्लर होने पर) ही किया जाए, उसके लिखते समय नहीं — इससे उपयोगकर्ता के लिखना पूरा करने से पहले त्रुटि संदेश दिखने से बचता है। यदि फ़ोकस के आधार पर कई इनपुट की स्टाइल अलग-अलग करनी हो, तो किस फ़ील्ड पर फ़ोकस है यह state variable में रखें।
import { TextInput, View, StyleSheet } from 'react-native';
import { useState } from 'react';
export default function FocusableInput({ placeholder, onBlurValidate }) {
const [focused, setFocused] = useState(false);
const [value, setValue] = useState('');
const [error, setError] = useState('');
function handleBlur() {
setFocused(false);
const err = onBlurValidate ? onBlurValidate(value) : '';
setError(err);
}
return (
<View>
<TextInput
value={value}
onChangeText={setValue}
onFocus={() => setFocused(true)}
onBlur={handleBlur}
placeholder={placeholder}
style={[
styles.input,
focused && styles.focused,
error && styles.error,
]}
/>
</View>
);
}
const styles = StyleSheet.create({
input: { borderWidth: 1.5, borderColor: '#ddd', borderRadius: 10, padding: 12, fontSize: 16 },
focused: { borderColor: '#4f86f7', shadowColor: '#4f86f7', shadowOpacity: 0.2, shadowRadius: 4, shadowOffset: { width: 0, height: 2 } },
error: { borderColor: '#e74c3c' },
});कीबोर्ड छिपाना
मोबाइल पर, उपयोगकर्ता के TextInput के बाहर टैप करने पर कीबोर्ड अपने-आप नहीं छिपता। इसे प्रोग्राम के ज़रिए छिपाने के लिए react-native से Keyboard.dismiss() का उपयोग करें। अपनी स्क्रीन की सामग्री को ऐसे TouchableWithoutFeedback में रखें, जो प्रेस होने पर Keyboard.dismiss() चलाए, ताकि कीबोर्ड के बाहर कहीं भी टैप करने पर वह छिप जाए। दूसरा तरीका है कि ScrollView पर keyboardDismissMode प्रॉप का उपयोग करें: 'on-drag' उपयोगकर्ता के स्क्रॉल करना शुरू करते ही कीबोर्ड छिपा देता है, जो मोबाइल के लिए सुविधाजनक अनुभव है।
import { TouchableWithoutFeedback, Keyboard, ScrollView, TextInput, StyleSheet, View } from 'react-native';
export default function DismissibleForm() {
return (
<TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
<ScrollView
style={{ flex: 1 }}
keyboardDismissMode='on-drag' // dismiss on scroll
keyboardShouldPersistTaps='handled'
>
<View style={{ padding: 16, gap: 12 }}>
<TextInput style={styles.input} placeholder='Name' />
<TextInput style={styles.input} placeholder='Email' keyboardType='email-address' />
<TextInput style={styles.input} placeholder='Message' multiline numberOfLines={4} textAlignVertical='top' />
</View>
</ScrollView>
</TouchableWithoutFeedback>
);
}
const styles = StyleSheet.create({
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 8, padding: 12, fontSize: 16 },
});KeyboardAvoidingView
कीबोर्ड दिखाई देने पर वह स्क्रीन के निचले हिस्से को ढक सकता है और फ़ॉर्म में मौजूद टेक्स्ट इनपुट छिपा सकता है। कीबोर्ड खुलने पर सामग्री को अपने-आप ऊपर करने के लिए अपनी स्क्रीन को KeyboardAvoidingView में रखें। iOS पर behavior='padding' और Android पर behavior='height' सेट करें (सही मान चुनने के लिए Platform.OS का उपयोग करें)। हेडर की ऊँचाई को ध्यान में रखने के लिए इसे keyboardVerticalOffset के साथ उपयोग करें। अधिक इनपुट वाली स्क्रीन के लिए, अंदर ScrollView के साथ KeyboardAvoidingView का संयोजन सबसे अच्छा अनुभव देता है।
import { KeyboardAvoidingView, Platform, ScrollView, TextInput, TouchableOpacity, Text, StyleSheet } from 'react-native';
export default function LoginScreen() {
return (
<KeyboardAvoidingView
style={{ flex: 1 }}
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
keyboardVerticalOffset={60} // adjust for header height
>
<ScrollView contentContainerStyle={styles.form}>
<TextInput style={styles.input} placeholder='Email' keyboardType='email-address' />
<TextInput style={styles.input} placeholder='Password' secureTextEntry />
<TouchableOpacity style={styles.btn}>
<Text style={styles.btnText}>Log In</Text>
</TouchableOpacity>
</ScrollView>
</KeyboardAvoidingView>
);
}
const styles = StyleSheet.create({
form: { padding: 24, gap: 16, flexGrow: 1, justifyContent: 'center' },
input: { borderWidth: 1, borderColor: '#ccc', borderRadius: 10, padding: 14, fontSize: 16 },
btn: { backgroundColor: '#4f86f7', padding: 16, borderRadius: 10, alignItems: 'center' },
btnText: { color: '#fff', fontWeight: 'bold', fontSize: 16 },
});फ़ॉर्मैट किए गए मानों के लिए इनपुट मास्किंग
कुछ इनपुट में उपयोगकर्ता के लिखते समय फ़ॉर्मैट किया हुआ डिस्प्ले चाहिए — जैसे हर 4 अंकों के बाद रिक्त स्थान वाले क्रेडिट कार्ड नंबर, डैश वाले फ़ोन नंबर या DD/MM/YYYY फ़ॉर्मैट में तारीखें। इसे onChangeText हैंडलर में लागू करें: कच्चे इनपुट से फ़ॉर्मैटिंग अक्षर हटाएँ, फ़ॉर्मैट लागू करें और फ़ॉर्मैट की गई स्ट्रिंग को state के रूप में सेट करें। TextInput फ़ॉर्मैट किया हुआ मान (state से) दिखाता है, लेकिन सबमिट करने के लिए कच्चे अंक अलग से रखें। react-native-mask-input जैसी लाइब्रेरी सामान्य पैटर्न को अपने-आप संभालने वाला सीधे उपयोग किया जा सकने वाला masked TextInput देती हैं।
import { TextInput } from 'react-native';
import { useState } from 'react';
// Manual phone number formatting: (555) 123-4567
export default function PhoneInput({ onPhoneChange }) {
const [display, setDisplay] = useState('');
function formatPhone(raw) {
const digits = raw.replace(/\D/g, '').slice(0, 10); // digits only, max 10
let formatted = digits;
if (digits.length > 6) {
formatted = '(' + digits.slice(0,3) + ') ' + digits.slice(3,6) + '-' + digits.slice(6);
} else if (digits.length > 3) {
formatted = '(' + digits.slice(0,3) + ') ' + digits.slice(3);
} else if (digits.length > 0) {
formatted = '(' + digits;
}
setDisplay(formatted);
onPhoneChange(digits); // pass raw digits to parent
}
return (
<TextInput
value={display}
onChangeText={formatPhone}
keyboardType='phone-pad'
placeholder='(555) 123-4567'
style={{ borderWidth: 1, borderColor: '#ccc', borderRadius: 8, padding: 12, fontSize: 16 }}
/>
);
}त्वरित जाँच
इस पाठ में React Native Mobile Development की अवधारणाओं की अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस पाठ में आपने सीखा: keyboardType डेटा के प्रकार के अनुसार उपयुक्त कीबोर्ड दिखाता है, returnKeyType with refs फ़ॉर्म फ़ील्ड के बीच टैब-जैसी नेविगेशन सक्षम करता है और KeyboardAvoidingView कीबोर्ड को स्क्रीन के निचले हिस्से के इनपुट फ़ील्ड ढकने से रोकता है। आगे हम TouchableOpacity और Pressable के साथ टैप फ़ीडबैक जोड़ना सीखेंगे।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “TextInput की मूल बातें और कीबोर्ड प्रकार” पाठ निःशुल्क है?
हाँ — React Native Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “TextInput की मूल बातें और कीबोर्ड प्रकार” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। React Native Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“TextInput की मूल बातें और कीबोर्ड प्रकार” में मैं क्या सीखूँगा?
TextInput रेंडर करें, onChangeText से उसे स्थिति के साथ बाँधें, ईमेल या संख्यात्मक input के लिए कीबोर्ड प्रकार कॉन्फ़िगर करें और Return कुंजी की घटना सँभालें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Native Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या React Native Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Native Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“TextInput की मूल बातें और कीबोर्ड प्रकार” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस React Native Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर React Native Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- TextInput की मूल बातें और कीबोर्ड प्रकार
- TouchableOpacity और Pressable से टैप हैंडलर
- टॉगल, स्विच और चेकबॉक्स
- सरल लॉगिन फ़ॉर्म बनाना