Así que tengo una pantalla donde quiero que se quede el usuario. Si quiere irse, quiero que vaya a una pantalla específica. Si lo hago así:
useEffect(() => { navigation.addListener("beforeRemove", (e) => { e.preventDefault() navigation.popToTop() }) }, [navigation]) Recibo este error: RangeError: Maximum call stack size exceeded (native stack depth)
Incluso si cambio navigation.popToTop() a otra cosa (p. ej navigation.navigate("Account") ) obtendré el mismo error:/
La matriz final en su código es el "arreglo de dependencias" useEffect, lo que significa que useEffect se ejecutará cada vez que cambie algo en esa matriz. Agregar el oyente al objeto de navegación cambia el objeto, por lo que está agregando un número infinito de oyentes o reemplazando el existente en un bucle (no estoy seguro de cómo se implementa navigation.addListener ).
Debe realizar una de las siguientes acciones: