我想将堆栈导航器中默认后退按钮的行为本地自定义到一个屏幕。
在详细信息中,假设堆栈上有 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)