Reactjs 在这段代码中,为什么对Ref对象的更改会触发rerender
如上的react native动画演示所示Reactjs 在这段代码中,为什么对Ref对象的更改会触发rerender,reactjs,react-native,Reactjs,React Native,如上的react native动画演示所示 const fadeAnim=useRef(新的动画.Value(0))。当前//不透明度的初始值:0 React.useffect(()=>{ 时间( 法迪尼姆, { toValue:1, 持续时间:10000, } ).start(); },[fadeAnim]) 返回( {props.children} ); } 对fadeAnim的更改将触发组件的重新加载,我不理解这一点。 react文档也从未提到ref对象是状态的一部分 我遗漏了什么吗?我
const fadeAnim=useRef(新的动画.Value(0))。当前//不透明度的初始值:0
React.useffect(()=>{
时间(
法迪尼姆,
{
toValue:1,
持续时间:10000,
}
).start();
},[fadeAnim])
返回(
{props.children}
);
}
对fadeAnim的更改将触发组件的重新加载,我不理解这一点。
react文档也从未提到ref对象是状态的一部分
我遗漏了什么吗?我不确定,但我认为即使您删除了
useffect
依赖项中的fadeAnim
,它仍然可以工作。我以前从未尝试过使用refs作为挂钩的依赖项,它可以按预期工作。改变.current属性不会导致重新渲染,我猜是动画的。视图执行了一些特殊操作,将渲染绑定到动画值
const fadeAnim = useRef(new Animated.Value(0)).current // Initial value for opacity: 0
React.useEffect(() => {
Animated.timing(
fadeAnim,
{
toValue: 1,
duration: 10000,
}
).start();
}, [fadeAnim])
return (
<Animated.View // Special animatable View
style={{
...props.style,
opacity: fadeAnim, // Bind opacity to animated value
}}
>
{props.children}
</Animated.View>
);
}