خالی کردن مقدار user در componentDidUpdate

پرسیده شده
فعالیت 1314 روز پیش
دیده شده 402 بار
0

سلام خسته نباشید

اگه داخل componentDidUpdate قبل ارسال درخواست به سرور مقدار user فعلی را null کنیم و پس از آن درخواست را ارسال کنیم مشکلی پیش می آید؟

فایل پیوست

1
حذف شده

بستگی به شرایط داره و کاملا بستگی به اون منطق برنامه داره

مثلا در صورتی که انتظار داشته باشی فقط با تغییر checkedUser مقدار user تغییر بکن: کامپوننت والد rerender بشه این کامپوننت هم دوباره رندر میشه و مقدار user برابر null قرار می گیره

 

کدی که نوشتی ۲ بار مقدار user  رو برابر null قرار میده:

  1. اگر user مخالف  null باشه شرط اجرا میشه و user برابر null قرار میگیره که باعث رندر مجدد کامپوننت میشه
  2. دفعه بعدی بازم شرط چک میشه درسته مقدار فعلی user برابر null ولی شما داری مقدار قبلی رو چک میکنی که null نیست و این باعث میشه شرط دوباره اجرا بشه و user برابر null قرار بگیره

بهتر منتقل بشه به بعد از ارسال درخواست و کلا یک if هم قرار میدی!

فایل پیوست

مجتبی سوری

توسط

مجتبی سوری

5 مهر 99

حذف شده
اگه به جای prvState ، مقدار state فعلی رو چک کنیم مشکل رفع میشه دیگه ؟ بعد اگه داخل componentDidUpdate دوبار state به روزرسانی بشه مشکلی پیش نمیاد؟
حذف شده
مشکل یکمی بار معنایی متفاوتی داره!! بستگی داره چه چیزی رو مشکل بدونی! رندر شدن اضافه از نظر کلی مشکل محسوب نمیشه کلا بهتر تبدیل بشه به یک if همونطوری که که داخل پاسخ توضیح دادم
مجتبی سوری

8 مهر 99

جلسه مثال استفاده از getDerivedStateFromProps (پارت دوم)