使用 CSSTransition 组件的 findDOMNode 警告
findDOMNode warnings with CSSTransition components
"react": "^16.13.1"
"react-transition-group": "^4.3.0"
<React.StrictMode>
<Router>
<App />
</Router>
</React.StrictMode>
大家好
我遇到 findDOMNode 警告,无法在互联网上找到正确的解决方案。
index.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode...
这个例子是我从off docs here复制的,点击按钮,出现同样的错误。
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 钩子),但是对于 Transitions,它不起作用。
似乎 React.StrictMode 会发出这样的警告,直到这个库的补丁被合并,但是,我仍然没有看到创建的 issue
对于解决问题的任何帮助或建议,我将不胜感激
他们修复了版本 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 ref={nodeRef}>
{"I'll receive my-node-* classes"}
</div>
</CSSTransition>
<button type="button" onClick={() => setInProp(true)}>
Click to Enter
</button>
</div>
)
};
希望对您有所帮助。
对于使用基于 class 的组件的任何人,建议改用 createRef
。
示例:
const nodeRef = React.createRef(null);
我遇到了同样的问题,而且正如@warkentien2所说,你还需要在子组件中添加引用,否则没有任何反应。
"react": "^16.13.1" "react-transition-group": "^4.3.0"
<React.StrictMode>
<Router>
<App />
</Router>
</React.StrictMode>
大家好
我遇到 findDOMNode 警告,无法在互联网上找到正确的解决方案。
index.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode...
这个例子是我从off docs here复制的,点击按钮,出现同样的错误。
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 钩子),但是对于 Transitions,它不起作用。
似乎 React.StrictMode 会发出这样的警告,直到这个库的补丁被合并,但是,我仍然没有看到创建的 issue
对于解决问题的任何帮助或建议,我将不胜感激
他们修复了版本 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 ref={nodeRef}>
{"I'll receive my-node-* classes"}
</div>
</CSSTransition>
<button type="button" onClick={() => setInProp(true)}>
Click to Enter
</button>
</div>
)
};
希望对您有所帮助。
对于使用基于 class 的组件的任何人,建议改用 createRef
。
示例:
const nodeRef = React.createRef(null);
我遇到了同样的问题,而且正如@warkentien2所说,你还需要在子组件中添加引用,否则没有任何反应。