Me está costando entender el concepto de gancho en este caso:
el usuario inicia sesión a través de google, actualizando el estado de la session .
esto actualiza un estado de tipo de visitorType de 'espectador' a 'comprador'...
y luego se supone que mi barra de navegación se ajuste. pero no lo hace, a menos que cambie del navegador a otra aplicación y luego vuelva a hacerlo...
const { data: session } = useSession(); //next-auth login sessions const [visitorType, setVisitorType] = useState('viewer') const visitorRef = useRef(visitorType); useEffect(()=>{ return( () => {if (session) { visitorRef.current='buyside'; setVisitorType('buyside')} } ) },[session])por lo que entiendo, useRef obtiene el valor de algo entre re-renderizaciones? y useEffect es asíncrono, ¿entonces se queda atrás? - entonces, no estoy seguro de cómo puedo actualizar una referencia ...
La función devuelta por useEffect se dispara cuando los componentes se desmontan. Creo que lo que quieres es:
useEffect(()=>{ if (session) { visitorRef.current='buyside'; setVisitorType('buyside')} } },[session]) Con respecto a su pregunta sobre useRef: cuando configura visitorRef.current . No se activa ningún renderizado.
cuando llamas a setVisitorType , ocurre una nueva representación