首页 > 解决方案 > 如何在 react-native 中的 Tab Bottom 图标中检测多点触摸

问题描述

我有一个带屏幕的底部标签。我希望当用户按下第一个选项卡屏幕时滚动到顶部(尝试 useScrollToTop btw 但它不起作用,因为我的屏幕内有另一个顶部选项卡导航)。因此,我找到了一种解决方案,可以在按下时在选项卡内创建一个事件侦听器

此实现的问题在于,它仅检测一次触摸,例如当我从一个选项卡切换到另一个选项卡时,它会被激活,但是当我在同一个屏幕上并按下选项卡时,它什么也不做

<Tab.Screen
  name="Home"
  component={HomeNavigation}
  listeners={({navigation, route}) => ({
    tabPress: () => {
      console.log('tab pressed');
      const isAtFirstScreenOfStack = !route.state || route.state?.index === 0;
      if (navigation.isFocused() && isAtFirstScreenOfStack) {
        // here, fire off an event and listen to that in your relevant component
        EventRegister.emit('myCustomEvent', 'it works!!!')
      }
    },
    })}

标签: react-nativereact-native-androidreact-navigationreact-native-iosreact-native-navigation

解决方案


推荐阅读