Hamed Alvandy
Hamed Alvandy
خواندن ۳ دقیقه·۴ سال پیش

مدیریت کردن TextInput در ReactNative قمست 1

مدیریت کردن TextInput  در  ReactNative
مدیریت کردن TextInput در ReactNative


سلام

  • یه نکته خیلی باحال رو میخوام امروز بگم . فرض کنید شما یه فرم نوشتید که قرار یکسری اطلاعات رو از کاربر بگیره و زمان پر کردن هر فیلد شما میخوایید زمانی که ورود اطلاعات تمام شد یک عملیاتی روی اون دیتا انجام بدید . خب این رو میدونیم خیلی راحت با تابع یا تابع Text هرکدوم که در اون لحظه کارمون رو انجام میده انجام بدیم . خب تا اینجای کار همه چیز راحته بذارید یه مثال هم براش بزنیم :
  • مثل حالت زیر



import React, { Component } from 'react';
import { AppRegistry, TextInput } from 'react-native';
export default class UselessTextInput extends Component {
constructor(props) {
super(props);
this.state = { text: 'Useless Placeholder' };
}
render() {
return (
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
Text={(text) => this.setState({text})}
value={this.state.text}
/>
);
}
}
// skip this line if using Create React Native App
AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);

خب تا اینجا همه چی عالی هستش.

حالا فرض کنید که قرار یکی از فیلدهاتون که کنترل کل فرم رو داره انجام میده به عنوان مثال کد ملی حتما باید چک بشه . شما اگر دستی فرم رو پر کنید که مشکلی ندارید امااااااااااااااااااااا اگر به صورت اتوماتیک بخوام فرمتون پر بشه ممکنه دیگه به راحتی بعد از از پر شدن اتوماتیک فرم روی مثلا فیلد کد ملی نمیتونید اعتبار سنجی رو به همین راحتی انجام بدید .

خب برای این کار باید چیکار کرد ؟

نگران نباشید الان میگم بهتون .

خب فرم ما داره مقادیرش رو از STATE ها میگیره و پر میکنه بعد از پر کردن باید کاری کنیم که فرم به صورت اتوماتیک کار ولیدیت مثلا کد ملی رو انجام بده .این کار خیلی راحته ول از همه باید کاری کنید زمانی که وارد فرم شدید فیلد کد ملی روش Focuse بشه پس برای این کار من کامپوننتم رو به صورت زیر ست میکنم در اول کار :

<TextInput
...
isFocused
/>

خب به همین راحتی مرحله اول انجام شد حالا برای اینکه اگر فیلدم پر شده بود به صورت اتوماتیک یه کارایی انجام بده خب به راحتی میام و کدم رو به صورت زیر درست می کنم

<TextInput
...
isFocused
={()=>{ if(this.state.User.identification_number.length===10){ .... } }}
/>

خب به همین راحتی .....

امید وارم این آموزش مورد قبولتون بوده باشه

تا بعد....

reactreactnativeری اکت نیتیوری اکت
برنامه نویس ارشد موبایل
شاید از این پست‌ها خوشتان بیاید