راکت

فعال سازی مجددuseEffectدرreact

6 پاسخ

سلام دوستان چطور میشه کدی نوشت که با کلیک رو یه buttonمحتویات داخلuseEffectدوباره اجرا بشه?

ثبت پرسش جدید

پاسخ‌ها

6
محمدسجاد دباغ
محمدسجاد دباغ
@mdabbagh

تخصص: برنامه نویس لاراول

سلام دوست عزیز
شما باید یک state به صورت public ایجاد کنید و وقتی روی button کلیک شد ، اطلاعات به صورت dispatch به سمت state بره.
آخرین بار تابستان پارسال باهاش کار کردم و الان منبع دقیق ندارم اما جستجو کنی کلید وازه های react-redux و state رو احتمالا به راه حل برسی.

محمدسجاد دباغ
محمدسجاد دباغ
@mdabbagh

تخصص: برنامه نویس لاراول

شاید پاسخ شما همین‌جا باشد

progromer
progromer
@pwyazyzzadhbna

@msdabbagh
من می خوام از setInterval استفاده کنم درstateریداکس ازsetIntervalاستفاده نمیشه کرد

Parastoo Ebrahimi
Parastoo Ebrahimi
@parastooebrahimi

تخصص: front-end developer

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

 const [changeUE,setChangeUseEffect] = useEffect(false)

توی مرحله بعد با هر بار کلیک روی باتن باید مقدار اون رو تغییر بدیم. یعنی اگر false هست true و بالعکس.

    return (
        <React.Fragment>
          <button className="btn btn-primart" onClick={()=>setChangeUseEffect(!changeUE)}>Do It Again</button>
        </React.Fragment>
    )

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

    useEffect(() => {
        console.log("Executed!!")
    }, [changeUE])
progromer
progromer
@pwyazyzzadhbna

@parastooebrahimi
ممنون اما این بخش از کدتون

 const [changeUE,setChangeUseEffect] = useEffect(false)

ایراد میگره و کار نمیکنه
واین ارور رو میده

TypeError: Object is not iterable (cannot read property Symbol(Symbol.iterator))
Parastoo Ebrahimi
Parastoo Ebrahimi
@parastooebrahimi

تخصص: front-end developer

بله به جای useState نوشتم useEffect

 const [changeUE,setChangeUseEffect] = useState(false)

الان درست شد

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

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