मैं प्रतिक्रिया और टाइपप्रति का उपयोग कर रहा हूँ। मैं div टैग की ऊंचाई प्राप्त करना चाहता था, इसलिए मैंने useRef का उपयोग किया। हालाँकि, मुझे करंट में ts त्रुटि मिलती है।

Property 'current' is not present in type 'never'. ts(2339)
    const ref = useRef<HTMLDivElement>(null);

    useEffect(() => {
      if (ref != null || ref.current != null) {
        setHeight(ref.current.clientHeight);
      }
    }, [user]);

2
enoki 3 सितंबर 2021, 13:27

2 जवाब

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

इसका मतलब है कि आपकी शर्त ref.current != null "कभी नहीं" सच होगी यदि ref != null सत्य है

मैं आपके तर्क में देख सकता हूं, आप यह जांचने की कोशिश कर रहे हैं कि क्या ref.current ref.current.clientHeight के संदर्भ से पहले शून्य नहीं है।

तो सही स्थिति होनी चाहिए:

useEffect(() => {
  if (ref !== null && ref.current !== null) {
    setHeight(ref.current.clientHeight);
  }
}, [user]);

|| कंडीशन बाएं से दाएं चलती है, अगर आप अपनी कंडीशन का इस्तेमाल जारी रखना चाहते हैं तो ऑर्डर को इसमें बदलें:

useEffect(() => {
  if (ref.current !== null || ref !== null) {
    setHeight(ref.current.clientHeight);
  }
}, [user]);
1
Ryan Le 3 सितंबर 2021, 10:45

ध्यान दें कि जब आप कोड बदलते हैं तो त्रुटियां दूर हो जाती हैं:

if (ref !== null && ref.current != null) {
    setHeight(ref.current.clientHeight);
}

मैंने || को && में बदल दिया।

0
Itay Ganor 3 सितंबर 2021, 10:34