"react": "^16.13.1" "react-transition-group": "^4.3.0"

  <React.StrictMode>
    <Router>
        <App />
    </Router>
  </React.StrictMode>

हेलो सब लोग।

मुझे findDOMNode चेतावनी का सामना करना पड़ा और इंटरनेट पर सही समाधान नहीं मिल रहा है।

index.js:1 चेतावनी: स्ट्रिक्टमोड में findDOMNode पदावनत है। findDOMNode को संक्रमण का एक उदाहरण पारित किया गया था जो कि StrictMode के अंदर है ...

इस उदाहरण को मैंने ऑफ डॉक्स यहां से कॉपी किया है और बटन पर क्लिक करने पर, वही त्रुटि दिखाई देती है।

const Toolbar = (props) => {
    const [inProp, setInProp] = useState(false);
    return (
        <div>
            <CSSTransition in={inProp} timeout={200} classNames="my-node">
                <div>
                    {"I'll receive my-node-* classes"}
                </div>
            </CSSTransition>
            <button type="button" onClick={() => setInProp(true)}>
                Click to Enter
            </button>
        </div>
    )
};

इंटरनेट से समाधान ने createRef (मैंने usePef हुक का उपयोग किया) की कोशिश करने का सुझाव दिया, लेकिन संक्रमण के साथ, यह काम नहीं किया।

ऐसा लगता है कि React.StrictMode इस तरह की चेतावनी देगा जब तक कि इस लाइब्रेरी के लिए पैच को मर्ज नहीं किया जाएगा, लेकिन फिर भी, मुझे बनाया गया मुद्दा

मैं किसी भी मदद या समस्या को हल करने के प्रस्ताव के लिए आभारी रहूंगा

5
Gorr1995 31 मार्च 2020, 12:00

1 उत्तर

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

उन्होंने उस बग को 4.4.0 से ठीक किया है .

इसे ठीक करने के लिए nodeRef से CSSTransition तक जा सकते हैं

const Toolbar = (props) => {
    const [inProp, setInProp] = useState(false);
    const nodeRef = useRef(null)
    return (
        <div>
            <CSSTransition in={inProp} nodeRef={nodeRef} timeout={200} classNames="my-node">
                <div>
                    {"I'll receive my-node-* classes"}
                </div>
            </CSSTransition>
            <button type="button" onClick={() => setInProp(true)}>
                Click to Enter
            </button>
        </div>
    )
};

मुझे आशा है कि यह मददगार होगा।

7
mr_sudo 16 मई 2020, 20:45