我在 React-navigation/drawer 6 中实现
goBack
函数时遇到问题(“@react-navigation/drawer”:“^6.1.4”,准确地说)。
我能够使用以下代码在react-navigation/drawer 5中完美实现它:
<Drawer.Navigator>
<Drawer.Screen
....
options={{
header: ({ scene }) => {
const { options } = scene.descriptor;
const title = options.headerTitle;
return (
<MyHeader
title={title}
iconName={"menu"}
goback={() => scene.descriptor.navigation.goBack()}
/>
);
},
}}
/>
</Drawer.Navigator>
react-navigation/drawer 6 的相同修改代码(如下所示)将带我回到初始屏幕(而不是上一个屏幕)。它还会给出警告和错误消息。
<Drawer.Navigator>
<Drawer.Screen
....
options={{
header: ({ navigation, route, options }) => {
const title = getHeaderTitle(options, route.name);
return (
<MyHeader
title={title}
iconName={"menu"}
goback={() => navigation.goBack()}
/>
);
},
}}
/>
</Drawer.Navigator>
请问,我怎样才能在react-navigation/drawer 6 中实现这个“返回”?
您需要指定
backBehavior
<Drawer.Navigator backBehavior="history">
升级时请阅读升级指南,其中记录了这些更改:https://reactnavigation.org/docs/upgrading-from-5.x/#the-default-value-for-backbehavior-is-now-firstroute-for -标签和抽屉
我遇到了同样的问题,并尝试按照@satya164提供的方式修复它,但后来我意识到我只是有错误的导航结构。
如果您想从屏幕 B 返回到屏幕 A,它们可能应该嵌套在一个堆栈中而不是抽屉中。
就我而言,至少这是一个更好的解决方案。