【发布时间】:2019-12-23 02:23:58
【问题描述】:
我不确定如何更模糊地表述这个问题,但它是关于反应中的 pass-by-value 和 pass-by-reference 案例。还有 Hooks。
我正在使用 gsap 为 div 滑入和滑出设置动画,这是它的上下文,但我猜测 ref 的用途并不重要。 p>
所以,这很好用,即使这是我理解的传递 ref 的更典型的类组件方式:
const RootNavigation = () => {
var navbar = useRef();
const myTween = new TimelineLite({ paused: true });
const animate = () => {
myTween.to(navbar, 0.07, { x: "100" }).play();
};
return(
<div className="nav-main" ref={div => (navbar = div)}> // <<<<<<<<<< pass as a callback
...
</div>
)}
这会引发“TypeError:无法添加属性 _gsap,对象不可扩展”错误,尽管 React Hooks 指南会让我这样做:
const RootNavigation = () => {
var navbar = useRef();
const myTween = new TimelineLite({ paused: true });
const animate = () => {
myTween.to(navbar, 0.07, { x: "100" }).play();
};
return(
<div className="nav-main" ref={navbar}> //<<<<<<<<<<<<< not passing a callback
...
</div>
)}
有人可以向我解释一下这里发生了什么,或者甚至可以给一个男孩一个链接到已经解释过的地方吗?我确定某种丹角色在某处写过它,我只是不确定要谷歌什么。谢谢!
【问题讨论】:
标签: reactjs react-hooks