عمر سالم2 نشر 21 مارس 2021 أرسل تقرير نشر 21 مارس 2021 لدي نموذج يحتوي على 8 مكونات للإدخال النصي. أحتاج إلى معالجة كل واحد، ولكن بدون كتابة دالة لكل مدخل نصي. import * as React from 'react'; import { Button, Text, TextInput, View } from 'react-native'; class InsuranceInformation extends React.Component { constructor(props) { super(props); this.state = { inputs: [ { type: 'text', label: 'الأسم الأول', value: '' }, { type: 'text', label: 'الأسم الثاني', value: '' }, { type: 'date', label: 'تاريخ الميلاد', value: '' }, { type: 'text', label: 'العنوان (1)', value: '' }, { type: 'text', label: 'العنوان (2)', value: '' }, { type: 'number', label: 'رقم الجوال', value: '' }, { type: 'text', label: 'رقم البطاقة', value: '' }, { type: 'number', label: 'رقم التأمين السابق', value: '' } ] }; this.handleSubmit = this.handleSubmit.bind(this); } handleSubmit(e) {} render() { const { title } = this.props; return ( <View> <Text>{title}</Text> { this.state.inputs.map(input => ( <TextInput onChangeText={() => {}} // ماذا اكتب هنا؟ placeholder={input.label} /> )) } <Button onPress={this.handleSubmit} title="إرسال" /> </View> ); } } 1 اقتباس
0 Mohammed Saber6 نشر 22 مارس 2021 أرسل تقرير نشر 22 مارس 2021 نقوم بعمل دالة تقوم بتعديل قيمة الحقل في ال state هذا هو المثال بالشرح import * as React from 'react'; import { Button, Text, TextInput, View } from 'react-native'; export default class InsuranceInformation extends React.Component { constructor(props) { super(props); this.state = { inputs: [ // أولاً نضيف معرفات لكل حقل لكي نستهدف الحقل به وفي حالتنا سيكون id { id: 1, type: 'text', label: 'الأسم الأول', value: '' }, { id: 2, type: 'text', label: 'الأسم الثاني', value: '' }, { id: 3, type: 'date', label: 'تاريخ الميلاد', value: '' }, { id: 4, type: 'text', label: 'العنوان (1)', value: '' }, { id: 5, type: 'text', label: 'العنوان (2)', value: '' }, { id: 6, type: 'number', label: 'رقم الجوال', value: '' }, { id: 7, type: 'text', label: 'رقم البطاقة', value: '' }, { id: 8, type: 'number', label: 'رقم التأمين السابق', value: '' } ] }; this.handleSubmit = this.handleSubmit.bind(this); } updateFieldValue = (id, value) => { // نقوم بالبحث عن الحقل الذي نكتب فيه ونعدل قيمته const modifiedInputs = this.state.inputs.map(input => { if(input.id === id) { input.value = value; } return input; }) // ثم نعطي الحقول بالتعديلات الجديدة لل state this.setState({ inputs: modifiedInputs }) } handleSubmit(e) {} render() { const { title } = this.props; return ( <View> <Text>{title}</Text> { this.state.inputs.map(input => ( <TextInput value={input.value} // نقوم بعمل دالة تقوم بتعديل قيمة الحقل في ال state onChangeText={text => this.updateFieldValue(input.id, text)} placeholder={input.label} /> )) } <Button onPress={this.handleSubmit} title="إرسال" /> </View> ); } } اقتباس
السؤال
عمر سالم2
لدي نموذج يحتوي على 8 مكونات للإدخال النصي. أحتاج إلى معالجة كل واحد، ولكن بدون كتابة دالة لكل مدخل نصي.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.