我正在使用
react-navigation-v6
和 Drawer Navigator
。
<Drawer.Screen
name="Screen1"
component={MainScreen}
options={{
headerShown: true,
title: "Main Screen',
}}
/>
Drawer.Screen
name="Screen2"
component={SecondaryScreen}
options={{
headerShown: true,
title: "Secondary screen",
}}
/>
我想要实现的是,每次当前屏幕/路线更改时,我想使用我当前所在屏幕的 title 调度 Redux 函数。比如:
dispatch(setReduxContent(CurrentScreen.title));
我怎样才能实现这一目标?意味着获取当前焦点屏幕的标题,以便将其传递给函数。
我可以在每个屏幕组件中的
useFocusEffect()
中分派该函数,但我觉得这不是一个好的解决方案。
导航道具上没有
getOptions
或 getScreenOptions
方法。
您必须手动执行此操作,或者在执行 navigation.navigate('nextScreen', {title: 'nextScreenTitle'})
时传递下一个屏幕标题,并从内部 NextScreen 您将能够从 route params 访问 title,或者您可以调用 redux 更新存储函数具有来自每个不同屏幕的硬编码标题(这看起来不是一个好的解决方案)