【问题标题】:React-Native / Navigation : I want to detect wether the user is navigating backward between pushed screensReact-Native / Navigation :我想检测用户是否在推送的屏幕之间向后导航
【发布时间】:2021-09-23 10:08:50
【问题描述】:

如果我向前移动,使用不同的数据推送相同的组件/屏幕,我能够检测到屏幕是否正在安装,然后在 useEffect 中触发一个动作。

在返回之前的屏幕时,我似乎无法检测到组件/屏幕正在发生变化。

我尝试了两种不同的方法:

  • 如果不使用自定义组件覆盖本机后退箭头,然后将操作分配给 onPress,我无法在后退箭头顶部分配任何操作(我不想要此解决方案)

  • 更好的方法是将导航索引作为依赖项分配给 useEffect,然后在它更改时触发操作。它适用于向前导航,但不能向后导航。

我认为这很常见(例如在 LinkedIn 上的个人资料之间导航)。我应该尝试其他方法吗?

这是一段代码:

 const navIndex = useRef(0);
 
  useNavigationState((state) => {
    return (navIndex.current = state.index);
  });

 useEffect(() => {
    console.log('Current navigation index : ', navIndex.current);
  }, [navIndex]);

【问题讨论】:

    标签: react-native react-navigation react-native-navigation


    【解决方案1】:

    我认为我使用 useNavigationState 的方式并不理想。

    相反,这似乎可行:

      const state = useNavigationState(state => state);
    
      useEffect(() => {
      
        console.log('Navigation state : ', state);
    
      }, [state]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      相关资源
      最近更新 更多