Oddiy navigatsiya orqali javob qaytarish tugmasi o'chirib qo'yilsin

Men StackNavigator-dan foydalanishga harakat qilaman. u kirish sahifasidan ilovaning butun hayot davrida boshlanadi. Kirish ekraniga qaytishni xohlamayman. Kirish ekranidan keyin uni ekranda qanday yashirish mumkinligini biladimi? BTW, men uni kirish ekranida ham foydalanib:

const MainStack = StackNavigator({
  Login: {
    screen: Login,
    navigationOptions: {
      title: "Login",
      header: {
        visible: false,
      },
    },
  },
 //... other screens here
})
37

8 javoblar

For react-navigation version v1 >= 1.0.0-beta.9 , to make the back button disappear:

navigationOptions:  {
    title: 'MyScreen',
    headerLeft: null
}

Agar siz navigatsiya paketini tozalashni xohlasangiz, shunday qilishingiz mumkin (siz ekranda navigatsiyasiz):

import { NavigationActions } from 'react-navigation';

va barcha funksiyalarni o'chirib qo'yadigan maqsadli yo'nalishga o'tish uchun funktsiyadan foydalaning:

resetNavigation(targetRoute) {
  const resetAction = NavigationActions.reset({
    index: 0,
    actions: [
      NavigationActions.navigate({ routeName: targetRoute }),
    ],
  });
  this.props.navigation.dispatch(resetAction);
}

keyin qo'ng'iroq qiling this.resetNavigation ("myRouteWithDisabledBackFunctionality")  maqsadli marshrutga o'tmoqchi bo'lganingizda

For react-navigation version v2 you need to use StackAction.reset(...) instead of NavigationActions.reset

import { StackActions, NavigationActions } from 'react-navigation';

const resetAction = StackActions.reset({
  index: 0,//<-- currect active route from actions array
  actions: [
    NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
  ],
});

this.props.navigation.dispatch(resetAction);

More info here: https://reactnavigation.org/docs/en/stack-actions.html

88
qo'shib qo'ydi
Bu tugmachani o'chirib tashlaydi, ammo android biz hali ham qurilmani orqaga qaytarish tugmasi yordamida harakat qilishimiz mumkin. Buni o'chirib qo'yishning usullari bormi?
qo'shib qo'ydi muallif Gokul Kulkarni, manba
Sen shohsan
qo'shib qo'ydi muallif Δημήτρης Φιλίππου, manba
mening kunimni qutqaring ....
qo'shib qo'ydi muallif kurniawan26, manba
Ha, javobimni yangiladim.
qo'shib qo'ydi muallif Florin Dobre, manba
Rahmat, Manuel! Javobimni yangiladim!
qo'shib qo'ydi muallif Florin Dobre, manba
Rahmat, Mauritsio, men javobni o'zgartirdim.
qo'shib qo'ydi muallif Florin Dobre, manba
Va 2018-chi paytda "NavigationActions.reset (...)" o'rniga "StackAction.reset (...)" dan foydalaning, reaksionatsiyani.org/docs/en/stack-actions.html
qo'shib qo'ydi muallif Manuel, manba
Agar siz 2017 yilda bo'lsangiz, bu to'g'ri javob
qo'shib qo'ydi muallif mixdev, manba
Bu javob bu harakatga o'tish jarayonida qanday parametrlar qo'shilishi haqida kengaytiriladi. Shuningdek, rasmiy hujjatlarni tekshirish ham foydali bo'ladi.
qo'shib qo'ydi muallif kas, manba
Agar siz navigatsiya sozlamalarini tiklasangiz (aslida avvalgi ekranga qaytishning oldini olishga harakat qilmoqchi bo'lsangiz), avtomatik tarzda amalga oshirilganidek, nomni bekor qilishingiz kerak deb o'ylamayman.
qo'shib qo'ydi muallif Pwnrar, manba
"Indeks: 1" dan foydalanganda "aniqlanmagan kalitni o'qib bo'lmaydi". Ya'ni, ushbu xatolarni tuzatish uchun "index: 0" dan foydalanaman. Menimcha bu mantiqan
qo'shib qo'ydi muallif Mauricio Pastorini, manba

You can hide the back button using left:null, but for android devices it's still able to go back when the user presses the back button. You need to reset the navigation state and hide the button with left:null

Here are the docs for resetting navigation state: https://reactnavigation.org/docs/navigators/navigation-actions#Reset

Ushbu echim reja-navigator 1.0.0-beta.7 uchun ishlaydi, lekin left: null endi endi oxirgi versiyada ishlamaydi.

14
qo'shib qo'ydi
iOS-da siz hali ham ekranning chetidan siljiydingiz. Navigatsiya holatini tiklash, albatta, kerak.
qo'shib qo'ydi muallif cameronmoreau, manba

uni o'zim topdim;) qo'shib qo'yish:

  left: null,

asl qiymati tugma tugmasini o'chirib qo'yish.

const MainStack = StackNavigator({
  Login: {
    screen: Login,
    navigationOptions: {
      title: "Login",
      header: {
        visible: false,
      },
    },
  },
  FirstPage: {
    screen: FirstPage,
    navigationOptions: {
      title: "FirstPage",
      header: {
        left: null,
      }
    },
  },
3
qo'shib qo'ydi

react-navigation versions >= 1.0.0-beta.9

navigationOptions:  {
headerLeft: null}
2
qo'shib qo'ydi
Ushbu yechim men uchun ishladi. Rahmat.
qo'shib qo'ydi muallif Hiren Patel, manba

jesturesEnabled bilan headerLeft bilan birga null ga to'g'ri yo'l qo'yamiz. Ekranni siljitish bilan biz yana qaytib bora olamiz.

navigationOptions:  {
        title: 'Title',
        headerLeft: null,
        gesturesEnabled: false,
}
1
qo'shib qo'ydi

Eng so'nggi versiyada (v2) headerLeft: null ishlaydi. siz tekshiruvchining navigatsiyani ga quyidagi kabi qo'shishingiz mumkin

static navigationOptions = {
    headerLeft: null,
  };
0
qo'shib qo'ydi

this.props.navigation.navigate ("HomeScreen") o'rniga this.props.navigation.replace ("HomeScreen") dan foydalanishni ko'rib chiqdingizmi?

Shunday qilib, siz hech narsa qo'shilmayapsiz. shuning uchun HomeScreen Android-ning orqa tugmasi bosilganda yoki ekranda IOS-da o'ng tomonga siljiydigan bo'lsa, orqaga qaytish uchun hech qanday narsani o'zgartira olmaydi.

More informations check the Documentation. And of course you can hide the the back button by setting headerLeft: null in navigationOptions

0
qo'shib qo'ydi

HeaderLeft-ni null-ga sozlab, uni tuzatamiz

static navigationOptions =({navigation}) => {
    return {
        title: 'Rechercher une ville',
        headerLeft: null,
    }  
}
0
qo'shib qo'ydi
ReactJS & ReactNative Uzbekistan
ReactJS & ReactNative Uzbekistan
81 ishtirokchilar

Guruh ReactJS va ReactNative bo'yicha muloqot qilish uchun ochilgan. Sizni qiziqtirsa: @nodejs_uz @react_uz @angular_uz @ngTashkent @yiiframework_uz @js_uzb @typescript_uzb @vuejs_uz @ngTashkent @laravel_uz @uzdevgroup Ish o'rinlari @UzDev_jobs