چطور از کالبک با هوک useState در React استفاده کنیم؟
How to use callback with useState hook in React?
چطوری میتونم یه تابع کالبک رو با useState در React استفاده کنم؟ مثلا وقتی که بخوام بعد از تغییر state یه کاری انجام بدم، مثل تغییر یه state دیگه یا اجرای یه تابع خاص، باید چیکار کنم؟ وقتی از useState استفاده میکنم، میخوام که مطمئن باشم بعد از تغییر مقدار state، یه سری عملیات انجام میشه.
برای استفاده از یه تابع کالبک بعد از تغییر state با useState، راه مستقیم و پیشفرضی توی خود useState نیست، اما میتونی با استفاده از useEffect این کار رو انجام بدی. وقتی که state تغییر میکنه، useEffect اجرا میشه و تو میتونی توش هر کاری که دوست داری رو انجام بدی.
فرض کن یه state داری که اسمش count هست. میخوای وقتی که count تغییر میکنه، یه تابع کالبک اجرا بشه. این کار رو اینطور میتونی انجام بدی:
import React, { useState, useEffect } from 'react'; function Counter() { const [count, setCount] = useState(0); // Callback function to run after count updates useEffect(() => { // Here you can run any function you want console.log(`Count changed to: ${count}`); // Do things here }, [count]); // The useEffect runs whenever 'count' changes return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increase</button> </div> ); } export default Counter;
اینجا useEffect هر بار که count تغییر کنه، اجرا میشه و تو میتونی داخلش هر کاری که نیاز داری رو انجام بدی. مهمه که count رو به عنوان یه وابستگی (dependency) به useEffect پاس بدی تا این هوک به درستی کار کنه.