راکت
Parastoo Ebrahimi
Parastoo Ebrahimi
توسط Parastoo Ebrahimi مطرح شد
4 پاسخ

مشکل با useEffect در ری اکت

سلام. من برای اینکه هر موقع یکی از مقادیر تغییر کنه باید یه سرویس کال انجام بدم از useEffect استفاده کردم و اون پارامتر رو تارگت قرار دادم. ولی چهار بار اجرا میشه. مقدار رو لاگ گرفتم ببینم چیه که چهار بار این سرویس کال انجام میشه دیدم هر چهار بار مقدار یکسانی لاگ گرفته شده.. خب پس چرا با اینکه مقدار تارگتم آپدیت نشده کد توی useEffect چهار بار اجرا میشه ؟ کد به صورت زیر هست :

useEffect(() => {
    console.log(">>>>>>>", props.inventoryIdentifier);
    if (
      props.inventoryIdentifier &&
      props.inventoryIdentifier !== null &&
      props.inventoryIdentifier !== ""
    ) {
      axios
        .get(
          `${window.REACT_APP_CONFIG.REACT_APP_EMC_URL}api/inventory/${props.inventoryIdentifier}`
        )
        .then((response) => {
          setStocksData(response.data);
          setFieldValue(props.name, response.data[props.name]);
        });
    }
  }, [props.inventoryIdentifier]);

لاگی که گرفتم :


ثبت پرسش جدید
محمد شامخی
محمد شامخی
تخصص :fullstack developer
@mohamadshamekhi4 سال پیشمطرح شد
1

@parastooebrahimi
سلام وقت بخیر خسته نباشید
برای برطرف کردن این مشکل نیازه من از component قبلی که دارین به ای صفحه props پاس میدین ببینم تا بتونم کمکی کنم
توی این کدی که شما زدین و ارسال کردین هیچ مشکلی وجود نداره
احتما توی component قبلی شما زمانی که دارین state اپدیت میکنین مشکلی وجو داره که باعث میشه چهار بار اپدیت state انجام بشه


Parastoo Ebrahimi
Parastoo Ebrahimi
تخصص :front-end developer
@parastooebrahimi4 سال پیشمطرح شد
0

@mohamadshamekhi ممنونم. این مشکل خیلی ازش گذشت و من با یه روشی غیر از useEffect حلش کردم


محمد شامخی
محمد شامخی
تخصص :fullstack developer
@mohamadshamekhi4 سال پیشمطرح شد
0

@parastooebrahimi

خواهش میکنم اگر بازم مشکلی بود در خدمتیم✋


مهدی کامران
مهدی کامران
@kamyzenon4 سال پیشمطرح شد
1

فکر میکنم شما باید از cleanUp استفاده کنید و داخل مستندات خود react هست reactDoc


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

ورود یا ثبت‌نام