javascript - React/Jest איך להמתין עד ש-useEffect ירוץ?
יש לי את הקוד הבא:
const doSomething = useCallback(someFunction);
useEffect(() => {
// doSomething takes in the data and invokes the callback at the end as newData
doSomething(data, (newData: string) => {
setData(newData);
});
}, [data, doSomething]);
כשאני רוצה לבדוק את זה, זה עובד רק כאשר אני משתמש ב-setTimeout עם 1 מילישנייה או יותר. אני מניח שזה בגלל שהפונקציה ב-useEffect עדיין לא רצה ולכן לא עדכנה את הקומפוננטה, תתקנו אותי אם אני טועה. איך אני יכול לעקוף את זה בלי setTimeout? או שמא אני צריך גישה שונה לחלוטין? עזרה תוערך.
תשובה #1
אולי לנסות פונקציית עטיפה, למשל:
async function handleSomething(){
const res = await doSomthing()
setData(res)
}
אז קרא לפונקציה הזאת בתוך useEffect.
