Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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/1/visual-studio-2012/2.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
React native 动画和状态问题:在useEffect中使用Animated.spring_React Native - Fatal编程技术网

React native 动画和状态问题:在useEffect中使用Animated.spring

React native 动画和状态问题:在useEffect中使用Animated.spring,react-native,React Native,我是一名新的本地应用程序开发人员。 我试图理解,如果我在链接的文本中取消注释行11setTest(false),为什么动画会停止工作 谢谢大家! 相关代码副本: 导出默认函数App(){ const element1=useRef(新的动画.ValueXY()).current; const element2=新的动画.ValueXY(); const[test,setTest]=useState(true); useffect(()=>{ //setTest(假); 设置超时(()=>{ 春

我是一名新的本地应用程序开发人员。

我试图理解,如果我在链接的文本中取消注释行11
setTest(false)
,为什么动画会停止工作

谢谢大家!

相关代码副本:
导出默认函数App(){
const element1=useRef(新的动画.ValueXY()).current;
const element2=新的动画.ValueXY();
const[test,setTest]=useState(true);
useffect(()=>{
//setTest(假);
设置超时(()=>{
春天(
要素2,
{
toValue:{x:-10,y:-100},
useNativeDriver:真的吗
}
).start();
}, 2000);
}, []);
返回(
);
}

setState函数用于更新状态。它接受一个新的状态值并使组件的重新呈现排队

请记住,当您更改组件的状态时,它会导致“重新渲染”,以便element2变量返回其初始值。要解决这个问题,在element2变量上使用“useRef”钩子,就像在element1上一样

const element2 = useRef(new Animated.ValueXY()).current;
“useRef”钩子将使变量在组件生命周期中保持不变,因此如果组件被重新呈现,它不会受到影响

useRef返回一个可变的ref对象,其.current属性初始化为传递的参数(initialValue)。返回的对象将在组件的整个生命周期内持续存在

setState函数用于更新状态。它接受一个新的状态值并使组件的重新呈现排队

请记住,当您更改组件的状态时,它会导致“重新渲染”,以便element2变量返回其初始值。要解决这个问题,在element2变量上使用“useRef”钩子,就像在element1上一样

const element2 = useRef(new Animated.ValueXY()).current;
“useRef”钩子将使变量在组件生命周期中保持不变,因此如果组件被重新呈现,它不会受到影响

useRef返回一个可变的ref对象,其.current属性初始化为传递的参数(initialValue)。返回的对象将在组件的整个生命周期内持续存在