मैं Async फ़ंक्शन को कॉल करने और नीचे की तरह प्रतिक्रिया में useRef के अंदर अपनी प्रतिक्रिया का उपयोग करने का प्रयास कर रहा हूं:

const myComponent = () => {
    const getTitle = async () => { 
        const res = await fetch('title');
        return res;
    }

    const myref = useRef(
         Employee().retire({
             id: 1,
             title: await getTitle(),
         }),
    );
}

हालांकि, मैं useRef के अंदर प्रतीक्षा का उपयोग नहीं कर सकता। इसे पूरा करने का और क्या तरीका है?

0
Amir 7 जुलाई 2021, 13:47

3 जवाब

सबसे बढ़िया उत्तर

रेफरी सेट करें

const myRef = useRef(null);

और फिर useEffect का उपयोग इसे एक बार अपडेट करने के लिए करें जब कंपोनेंट रेंडर करता है:

// `getTitle` doesn't need to be async because
// you're apparently already returning a promise
function getTitle() { 
  return fetch('title');
}

useEffect(() => {

  // Call an async function in your `useEffect`
  // to wait for the promise to resolve and use the data
  // to update the ref
  async function getData() {
    const title = await getTitle();
    myRef.current = Employee().retire({ id: 1, title });
  }
  getData();
}, []);
1
Andy 7 जुलाई 2021, 11:00

मुझे पता है कि एकमात्र तरीका myref के बाद async फ़ंक्शन को हल करने के लिए सेट किया गया है। कुछ इस तरह:

const myComponent = () => {
    const getTitle = async () => { 
        const res = await fetch('title');
        return res;
    }

    const myref = useRef(null);

    useEffect(() => {
       (async () => {
          let title = await getTitle();
          myref.current = Employee().retire({ id: 1, title });
          console.log(myref.current);
       })();
    }, []);
}

यहां एक कामकाजी उदाहरण।

1
Giovanni Esposito 7 जुलाई 2021, 11:09

await कीवर्ड केवल async फ़ंक्शन के अंदर उपयोग कर रहे हैं

0
Evgeniy 7 जुलाई 2021, 10:53