Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在这段代码中,为什么对Ref对象的更改会触发rerender_Reactjs_React Native - Fatal编程技术网

Reactjs 在这段代码中,为什么对Ref对象的更改会触发rerender

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对象是状态的一部分 我遗漏了什么吗?我

如上的react native动画演示所示

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>
  );
}