لطفا در مورد Props Type در ری اکت توضیح بدید و اینکه به چه دردی میخوره.
اگر ممکنه یا فیلم آموزشی معرفی کنید یا با مثال توضیح بدید
ممنون
نکته اول اینکه شما باید بدونید Props در react.js چیست که توصیه میکنم حتما مطالعه بفرمایید.
همونطور که توی لینک بالا اشاره شده یک صفحه SPA از کامپوننت های مختلفی تشکیل شده. این کامپوننت ها در شرایط مختلفی نیاز به متغیرها یا پارامترهایی دارن. مثلا ممکنه یه کامپوننت که برای هدر یک سایت استفاده میشه برخی از اطلاعاتش رو نیاز داشته باشه از دیتابیس یا به صورت متغیر بخونه.
در این حالت از Props ها استفاده میشه. در واقع میشه گفت Props ها همون پارامترهای ورودی به کامپوننتها هستن.
خب حالا این متغیرهایی که به کامپوننت ها ارسال میشن در اکثر مواقع نیاز دارن که Validation هایی روی اونها صورت بپذیره. مثلا میخوایم تعیین کنیم که حتما Props ارسال شده به کامپوننت از نوع string باشه و یا از نوع number باشه.
پس میشه گفت ما از Props Type ها برای اعتبار سنجی استفاده می کنیم.
برای استفاده از Props Type ها در ابتدا باید پکیج مورد نظر رو توسط npm نصب کنیم
npm install --save prop-types
بعد از اون در بالای کامپوننت باید کتابخانه مورد نظر رو فراخوانی کنیم
import propType from 'prop-types';
و در نهایت هم میتونیم از این پراپس تایپ ها استفاده کنیم. به مثال زیر توجه کنید
const MyPropsComponent =(propsVar)=>{
return(
<h1>
This Leseon is about {propsVar.name} And Age {propsVar.age}
</h1>
)
}
در بالا یک کامپوننت به نام MyPropsComponent داریم که 2 Props به نام name و age داره. حالا ما میخوایم که name حتما از نوع string باشه و age حتما از نوع number و همچنین age حتما وارد شده باشه یعنی isRequired باشه و name هم یک مقدار پیش فرضی رو داشته باشه. پس به صورت زیر می نویسیم
import React from 'react';
import propType from 'prop-types';
const MyPropsComponent =(propsVar)=>{
return(
<h1>
This Leseon is about {propsVar.name} And Age {propsVar.age}
</h1>
)
}
export default MyPropsHtmlTag;
MyPropsComponent.propType={
name : propType.string,
age : propType.number.isRequired
}
MyPropsComponent.defaultProps={
name : 'myname'
}
الان اگر هر کدوم از شرایط مشخص شده در Props Type ها رعایت نشه در Consol مرورگر خطا ایجاد میکنه
موفق باشید
تاریخ :
1400/05/03
- ساعت :
10:48:00 AM
- بازدید :
6754
- پاسخ :
5
|
تاریخ :
1398/07/19
- ساعت :
11:16:00 PM
- بازدید :
3397
- پاسخ :
2
|
تاریخ :
1398/08/06
- ساعت :
03:57:00 PM
- بازدید :
7895
- پاسخ :
2
|
تاریخ :
1398/08/09
- ساعت :
10:17:00 PM
- بازدید :
4615
- پاسخ :
1
|
تاریخ :
1398/09/11
- ساعت :
03:46:00 PM
- بازدید :
4436
- پاسخ :
1
|
تاریخ :
1398/09/11
- ساعت :
02:02:00 PM
- بازدید :
3034
- پاسخ :
1
|
تاریخ :
1398/08/10
- ساعت :
11:29:00 PM
- بازدید :
1698
- پاسخ :
1
|
تاریخ :
1398/08/14
- ساعت :
11:45:00 AM
- بازدید :
3407
- پاسخ :
1
|
تاریخ :
1398/08/09
- ساعت :
07:44:00 PM
- بازدید :
4711
- پاسخ :
1
|
تاریخ :
1400/04/23
- ساعت :
05:04:00 PM
- بازدید :
4364
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
58
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
98
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1348
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|