如何在 PanResponder 中递增状态值

How to increment state value in PanResponder

提问人:Bryl 提问时间:11/17/2023 最后编辑:Mark RotteveelBryl 更新时间:11/17/2023 访问量:13

问:

我面临着一个关于如何增加内部值的问题PanResponder

这是我的代码:

const [currentIndex, setCurrentIndex] = useState(0)

const panResponderLeft = useRef(
    PanResponder.create({
      onStartShouldSetPanResponder: () => {
        return true;
      },
      onPanResponderMove: (_, gestureState) => {
        updateLeftPosition(gestureState.dx);
      },
      onPanResponderRelease: (_, gestureState) => {
        if (gestureState.dx > 50) {
         setCurrentIndex(currentIndex+1)
        }
      },
    }),
  ).current;

实际输出是当我尝试滑动时,从 到 更新的值,但是当我尝试再次滑动时,值保持不变currentIndex011

反应原生

评论


答:

0赞 Bryl 11/17/2023 #1

我设法用这个来修复它

setCurrentIndex(prevIndex => prevIndex + 1);

更新后的代码是

const [currentIndex, setCurrentIndex] = useState(0)

const panResponderLeft = useRef(
    PanResponder.create({
      onStartShouldSetPanResponder: () => {
        return true;
      },
      onPanResponderMove: (_, gestureState) => {
        updateLeftPosition(gestureState.dx);
      },
      onPanResponderRelease: (_, gestureState) => {
        if (gestureState.dx > 50) {
         setCurrentIndex(prevIndex => prevIndex + 1);
        }
      },
    }),
  ).current;