تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ محمد رمضان بیک
نحوه دریافت params با استفاده از render در Route
جامعه ری اکت ایجاد شده در ۱۰ آبان ۱۴۰۱

با سلام

دو سوال:

1- آیا نحوه دریافت params با استفاده از render props تفاوتی با component render دارد؟

2- در صورتی که یک کامپوننت چند props را دریافت کند چگونه می‌توان این از این کامپوننت برای رندر شدن در Route استفاده کرد؟

با تشکر

سلام وقتتون بخیر.

هر دو سوالتون در این جلسه کاملا پاسخ داده میشه . لطفا با دقت این جلسه رو مشاهده کنید .

اگر به مثال‌های بیشتر نیاز داشتید میتونید به اینجا مراجعه کنید .

موفق باشید .

علیرضا ایمانی ۱۰ آبان ۱۴۰۱، ۱۹:۲۷

یا سلام و احترام

بله سوال اول پاسخ داده شده است اما در مورد سوال دوم باید عرض کنم که هیچ اشاره ای نشده یا شاید اینجانب سوال رو بد مطرح کرده باشم.

فرض کنید که در یک پروژه یک کامپوننتی که به صورت اجباری دو props به نام‌های isAdmin و message را دریافت می‌کند از قبل نوشته شده است (پروژه با ts پیاده سازی شده است)، حالا مجبوریم از این کامپوننت به یکی از حالات‌های گفته شده در Route استفاده کنیم و مجبوریم دو params ارسالی در path رو به عنوان مقادیر isAdmin و message ،برای کامپوننت ارسال کنیم .

راه حل جیست؟

<Link to='/myPage/:true/:someValue'>Home Page Link>
 <Switch>
        <Route path='/myPage/:isadmin:/message' component={MyPage isAdmin={?} message={?}} />
  //or
          <Route path='/myPage/:isadmin:/message' render={()=><MyPage isAdmin={?} message={?}/>} />
   Switch>
               
محمد رمضان بیک ۱۱ آبان ۱۴۰۱، ۰۶:۱۱

سلام

به روش‌های مختلفی میشه این مورد رو انجام داد

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

روش‌های زیر هم میشه:

<Route path="/myPage/:isadmin/:message'" component={({ match }) => <MyPage message={match.params.message}/>}/>
<Route path="/myPage/:isadmin/:message'">
    {({ match }) => <MyPage message={match.params.message}/>}
 Route>
بهترین پاسخ
مجتبی سوری ۱۲ آبان ۱۴۰۱، ۲۰:۵۸