1) ในการทำให้ปุ่มย้อนกลับหายไปใน react-navigation v2 หรือใหม่กว่า:
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
2) หากคุณต้องการล้างสแต็กการนำทาง:
สมมติว่าคุณอยู่บนหน้าจอที่คุณต้องการนำทางจาก:
หากคุณใช้ react-navigation เวอร์ชัน v5 หรือใหม่กว่าคุณสามารถใช้navigation.reset
หรือCommonActions.reset
:
navigation.reset({
index: 0,
routes: [{ name: 'Profile' }],
});
แหล่งที่มาและข้อมูลเพิ่มเติมที่นี่: https://reactnavigation.org/docs/navigation-prop/#reset
หรือ:
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);
แหล่งที่มาและข้อมูลเพิ่มเติมที่นี่: https://reactnavigation.org/docs/navigation-actions/#reset
สำหรับ react-navigation เวอร์ชันเก่า:
v2-v4ใช้StackActions.reset(...)
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
],
});
this.props.navigation.dispatch(resetAction);
v1ใช้NavigationActions.reset
3) สำหรับ Android คุณจะต้องปิดใช้งานปุ่มย้อนกลับของฮาร์ดแวร์โดยใช้ BackHandler :
http://reactnative.dev/docs/backhandler.html
หรือหากคุณต้องการใช้ตะขอ:
https://github.com/react-native-community/hooks#usebackhandler
มิฉะนั้นแอปจะปิดเมื่อกดปุ่มย้อนกลับของฮาร์ดแวร์ Android หากสแต็กการนำทางว่างเปล่า