Próbuję uniemożliwić użytkownikowi użycia przycisku Wstecz, znalazłem rozwiązanie w tagu Dokumenty Jak mówią, muszę użyć tego kodu:

navigation.dispatch(
    CommonActions.reset({
      index: 1,
      routes: [
        { name: 'Login' },
  
      ],
    })
  );

Użyłem go wewnątrz useEffect, aby zastosować go na obciążeniu strony.

useEffect(()=>{
  navigation.dispatch(
    CommonActions.reset({
      index: 1,
      routes: [
        { name: 'Login' },
  
      ],
    })
  );
},[])

Ale otrzymuję ten błąd, a aplikacja nie działa dobrze:

Ostrzeżenie: przekroczona głębokość aktualizacji. Może się to zdarzyć, gdy komponent wywołuje Setstate wewnątrz Useffect, ale Useffect albo nie ma tablicy zależności ani jednego z zależności zmian na każdym renderowaniu.

0
danial dehvan 21 październik 2020, 23:19

1 odpowiedź

Najlepsza odpowiedź

Problemem jest useeffect z [] nazywa się, gdy montuje się z komponentami. Tak więc montuje się, a następnie powiesz, aby zresetować nawigację do strony logowania (ta sama strona), więc logowanie zostanie ponownie wywołane, a useeffect zadzwonił ponownie. I tak dalej. Więc co musisz zrobić, jest to, że komponent wysyła Cię do logowania musi zrobić reset i wyjmowanie go z Useffect wewnątrz strony logowania.

1
Iosif 21 październik 2020, 21:00