Tengo un enlace personalizado que maneja la obtención de datos globales en función de la autenticación del usuario. el gancho es asi:
const userState = useSelector(state => state.user.state) useEffect(() => { if(userState === "authenticated") doSomething() if(userState === "unauthenticated") doSomething() if(userState === "loading") doSomething() }, [userState])
pero como estoy usando el modo estricto de React 18 (en NextJS), useEffect solo se ejecuta dos veces con userState === "loading"
y no se ejecutará cuando se actualice el estado.
No estoy seguro si debería dar más detalles de mi código. Si lo necesita, dígame y editaré la pregunta. Gracias
En React 18 con modo estricto, después de que se monte el componente, React inmediatamente simula desmontar y volver a montar el componente (solo en el entorno de desarrollo ). Consulte los documentos de reacción .
Supongo que eliminar el modo estricto solucionará su problema. para tener un código consistente y evitar que ocurran ciclos de vida inseguros, usa next lint
en su lugar.
React 18 tuvo algunos problemas con la versión de react-redux <= 7.2.7, así que asegúrese de actualizarlo a 7.2.8 o al nuevo react-redux 8 beta (que está diseñado específicamente para React 18)