React-Navigation-V6:获取当前所选屏幕的标题

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

我正在使用

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()
中分派该函数,但我觉得这不是一个好的解决方案。

react-native react-redux react-navigation
1个回答
0
投票

导航道具上没有

getOptions
getScreenOptions
方法。 您必须手动执行此操作,或者在执行
navigation.navigate('nextScreen', {title: 'nextScreenTitle'})
时传递下一个屏幕标题,并从内部 NextScreen 您将能够从 route params 访问 title,或者您可以调用 redux 更新存储函数具有来自每个不同屏幕的硬编码标题(这看起来不是一个好的解决方案)

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