小编Dav*_*ide的帖子

React Native Navigation 覆盖 Stack Navigator 中标题后退按钮的 goBack()

我想将堆栈导航器中默认后退按钮的行为本地自定义到一个屏幕。

在详细信息中,假设堆栈上有 screen1|screen2,我想在按下按钮后将一些道具从 screen2 传递到 screen1。

我花了很多时间阅读 React 导航文档、在互联网上搜索和编码,但我无法做到这一点。

来自文档

在某些情况下,您可能希望比通过上述选项更多地自定义后退按钮,在这种情况下,您可以将 headerLeft 选项设置为将呈现的 React 元素 我知道问题涉及 goBack( ) headerRight 组件的函数。

我想用诸如 navigation.navigate("previousScreen",{{..props}}) 之类的内容覆盖与 headerLeft 后退按钮相关的默认函数 goBack() 。

而且(这非常重要!!)我想在特定屏幕本地使用此行为,而不是全局。

我尝试过类似的事情但不起作用。

 export default function App(){
 return(
 <NavigationContainer>
  <Stack.Navigator>
    <Stack.Screen name="FirstScreen" component={FirstScreen}/>
    <Stack.Screen name="SecondScreen" component={SecondScreen} options={{headerLeft: () => (
        <HeaderBackButton
          onPress={() =>navigation.navigate("FirstScreen",{//stuff//})}
          title="Info"
          color="#fff"
        />
      ),}}/>
  </Stack.Navigator>
</NavigationContainer>
 )}
Run Code Online (Sandbox Code Playgroud)

reactjs react-native react-navigation-stack

8
推荐指数
2
解决办法
2万
查看次数