پرسش

چطور از کال‌بک با هوک useState در React استفاده کنیم؟

How to use callback with useState hook in React?

چطوری می‌تونم یه تابع کال‌بک رو با useState در React استفاده کنم؟ مثلا وقتی که بخوام بعد از تغییر state یه کاری انجام بدم، مثل تغییر یه state دیگه یا اجرای یه تابع خاص، باید چیکار کنم؟ وقتی از useState استفاده می‌کنم، می‌خوام که مطمئن باشم بعد از تغییر مقدار state، یه سری عملیات انجام می‌شه.

1403/06/02
پاسخ
محمدامین سعیدی راد
بیوگرافی محمدامین سعیدی راد

برای استفاده از یه تابع کال‌بک بعد از تغییر 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 پاس بدی تا این هوک به درستی کار کنه.

پاسخ: 1403/06/02
آخرین آپدیت: 1403/07/28