Quiero enviar una función después de que se llame a la función useSelector.
este es mi codigo
const profile = useSelector( ({ x}) => x.profile, ); useEffect(() => { dispatch(fetchX(y, setXStatus)); // this is getting called before profile is available }, [dispatch,y]);El problema es cuando dispatch(fetchX(y, setXStatus)); obtener la variable de perfil ejecutada no está configurada correctamente. ¿Hay alguna manera de ejecutar fetchX después de configurar el perfil?
Si por "después de llamar a la función useSelector" quiere decir "siempre que cambie el profile ", debe agregar el profile a la matriz de dependencia. Si el profile puede ser null (o similar) y necesita un perfil antes de poder realizar el dispatch , necesitará un guardia.
Algo a lo largo de estas líneas:
const profile = useSelector( ({ x}) => x.profile, ); useEffect(() => { if (profile) { // <−−−−−− Guard dispatch(fetchX(y, setXStatus)); } }, [dispatch, y, profile]); // ^^^^^^^−−−−− Dependency Tenga en cuenta, sin embargo, que esta devolución de llamada de efecto se llamará cada vez que dispatch , y o cambie el profile . dispatch probablemente nunca cambie, pero no sé sobre y o profile .