【发布时间】: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