滑动反应本机应用程序时 - 屏幕显示两次

问题描述 投票:0回答:3

实例https://snack.expo.dev/su1-U5DZc

如果我用按钮滑动屏幕 - 一切都好,但如果我用手势滑动 - 屏幕会显示两次。为什么这样?这是否 setWtf(state.index);

const onTouchStart = (e, state, context) => {
        console.log('onTouchStart: ' + state.index);
        setWtf(state.index);
    };

使索引通过引用存储在某处然后进行更新?

reactjs react-native swipe react-native-swiper
3个回答
1
投票

是的,这是由于

setWtf(state.index);
。在其官方 git 页面中更新状态时,报告了渲染问题的错误。

他们说要将

react-native-swiper
降级到
1.5.5
版本 或者您可以遵循此处提到的其他解决方案:更新状态会破坏幻灯片


0
投票

从“react-native-swiper”导入 Swiper;

这个解决了滑动时更新状态的问题。试试这个


-1
投票

如果没有更多信息,就不可能查明您遇到的问题的确切原因,尽管可以想象该问题与代码处理触摸事件的方式有关。

您的代码可能会根据在屏幕之间滑动时的手势调整

state.index
的值,然后根据state.index的值刷新屏幕显示。如果通过引用更新
state.index
,则屏幕显示可能会更新两次,因为该值被修改两次:一次通过手势,一次通过
setWtf
功能。

使用不同的变量来保存当前屏幕索引,并仅在用户与按钮交互时更新

state.index
的值是解决此问题的一种可能方法。这应该可以防止屏幕多次显示,并确保
state.index
的值仅被修改一次。

请务必记住,您在查询中指定的

setWtf
函数无法与您遇到的问题相关联。如果没有更多信息,很难确定此函数是否用于更新应用程序中的另一个状态。

© www.soinside.com 2019 - 2024. All rights reserved.