Javascript 如何修复交换错误,在我';我一直刷到最后?
因此,我在这里创建了一个滑动:Javascript 如何修复交换错误,在我';我一直刷到最后?,javascript,reactjs,react-native,animation,gesture,Javascript,Reactjs,React Native,Animation,Gesture,因此,我在这里创建了一个滑动: let numbers = new Array(40); for (i = 0, num = 5; i < numbers.length; i++, num += 5) { numbers[i] = num; } const TIME_HEIGHT = styles.text.fontSize * 1.34; const clock = useClock(); const index = useValue(0); const
let numbers = new Array(40);
for (i = 0, num = 5; i < numbers.length; i++, num += 5) {
numbers[i] = num;
}
const TIME_HEIGHT = styles.text.fontSize * 1.34;
const clock = useClock();
const index = useValue(0);
const snapPoints = numbers.map((_, i) => i * -TIME_HEIGHT)
const offsetY = useValue(0);
const y = useValue(0);
const {
gestureHandler,
state,
velocity,
translation
} = usePanGestureHandler();
const to = snapPoint(y, velocity.y, snapPoints);
useCode(
() => [
cond(eq(state, State.ACTIVE), [
set(y, diffClamp(
withDecay({
value: add(offsetY, translation.y),
velocity: velocity.y,
state,
}),
-numbers.length * TIME_HEIGHT + TIME_HEIGHT,
0
)),
]),
cond(eq(state, State.END), [
set(y, timing({ clock, from: y, to })),
set(offsetY, y),
cond(not(clockRunning(clock)), [
set(index, floor(divide(y, -TIME_HEIGHT))),
debug("index", index)
]),
]),
],
[]
);
let number=新数组(40);
对于(i=0,num=5;ii*-时间高度)
const offsetY=useValue(0);
常数y=使用值(0);
常数{
手势处理程序,
国家,,
速度
翻译
}=usePanGestureHandler();
常数to=捕捉点(y,速度.y,捕捉点);
使用代码(
() => [
cond(等式(状态,激活状态)[
套(y、D)夹(
衰变({
值:添加(offsetY,translation.y),
速度:速度,
国家,,
}),
-number.length*时间高度+时间高度,
0
)),
]),
条件(等式(状态,状态结束)[
设置(y,定时({时钟,从:y到}),
设置(偏移,y),
条件(非(时钟运行(时钟))[
集合(索引,楼层(除以(y,-时间和高度)),
调试(“索引”,索引)
]),
]),
],
[]
);
它工作得非常完美,但当我滑动到数组的最后一个元素并尝试滑动更多时,它会将我向后移动几步。它传送我的时间随着每次向下滑动而增加,当我向上滑动时,这个效果会节省下来。我怎样才能解决这个问题