React native 州政府没有';在动画.spring()中似乎没有更新

React native 州政府没有';在动画.spring()中似乎没有更新,react-native,React Native,我正在尝试使用一个功能组件来创建一个类似打火机的刷卡功能 我已经为下面的教程制作了一个功能版本 然而,我有一个奇怪的问题,显示卡的状态似乎没有得到正确更新。第一次它似乎工作,但从那时起,它似乎总是返回0 我制作了一个视频来说明这种奇怪的行为 import React,{useState,useffect,useRef}来自“React”; 从“react native”导入{样式表、视图、文本、TouchableOpacity、图像、ImageBackground、动画、PanRespond

我正在尝试使用一个功能组件来创建一个类似打火机的刷卡功能

我已经为下面的教程制作了一个功能版本

然而,我有一个奇怪的问题,显示卡的状态似乎没有得到正确更新。第一次它似乎工作,但从那时起,它似乎总是返回0

我制作了一个视频来说明这种奇怪的行为

import React,{useState,useffect,useRef}来自“React”;
从“react native”导入{样式表、视图、文本、TouchableOpacity、图像、ImageBackground、动画、PanResponder、维度};
从“expo linear gradient”导入{LinearGradient};
从“博览会状态栏”导入{StatusBar};
从“./Components/QuestionBox.js”导入QuestionBox
从“/questionStyles.js”导入{styles}
const SCREEN_HEIGHT=尺寸。获取(“窗口”)。高度
const SCREEN_WIDTH=尺寸。获取('window')。宽度
功能问题屏幕({路线,导航}){
const{players,mode}=route.params;
const[questions,setQuestions]=useState([
{标题:“敢”,文字:“boooooooo”},
{标题:“问题”,文本:“fdoooo”},
{标题:“问题”,正文:“fdfsooooo”},
{标题:“大胆”,文字:“博德富奥”}
]);
const pan=useRef(新的动画.ValueXY()).current;
const[currentIndex,setIndex]=useState(0);
const[times,setTimes]=useState(0)
const panResponder=useRef(
PanResponder.create({
onMoveShouldSetPanResponder:(evt,手势状态)=>真,
onPanResponderMove:Animated.event([null,{dx:pan.x,dy:pan.y}],{useNativeDriver:false}),
onPanResponderRelease:(evt,手势状态)=>{
平移偏移量();
},
onPanResponderRelease:(evt,手势状态)=>{
如果(gestureState.dx>120){
动画。春天(潘{
toValue:{x:SCREEN_WIDTH+100,y:gestureState.dy},
useNativeDriver:真的吗
}).start(()=>{
setIndex(当前索引+1)
set值({x:0,y:0})
console.log(“当前索引的值为:”.concat(currentIndex))
})
} 
否则{
动画。春天(潘{
toValue:{x:0,y:0},
useNativeDriver:没错,
摩擦力:4
}).start()
}
}
})
).目前;
常量旋转=平移x插值({
输入范围:[-屏幕宽度/2,0,屏幕宽度/2],
输出范围:['-10deg',0deg',10deg'],
推断:“钳子”
})
常量rotateAndTranslate={
变换:[{rotate:rotate},{translateX:pan.x},{translateY:pan.y}]
}
常数nextOpacity=pan.x.interpolate({
输入范围:[-屏幕宽度/2,0,屏幕宽度/2],
outputRange:[0,0,1],
推断:“钳子”
})
const nextcardpacity=pan.x.interpolate({
输入范围:[-屏幕宽度/2,0,屏幕宽度/2],
outputRange:[1,0,1],
推断:“钳子”
})
const nextCardScale=pan.x.interpolate({
输入范围:[-屏幕宽度/2,0,屏幕宽度/2],
输出范围:[1,0.8,1],
推断:“钳子”
})   
const renderQuestions=()=>{
返回问题。映射((项目,i)=>{
如果(i<当前索引){
返回空
}else if(i==currentIndex){
返回(
下一步>>
);
}否则{
返回(
);
}
}).reverse();
};
返回(
{renderQuestions()}
);
}
导出默认屏幕;

尝试如下设置索引:

setIndex(currentIndexValue => currentIndexValue+1);
setIndex(currentIndexValue => currentIndexValue+1);