si escribo esto, aparece Error: Demasiadas re-renderizaciones. React limita el número de renderizaciones para evitar un bucle infinito.
var dispatch = useDispatch() var phone = useSelector(store => store.phone) dispatch(phonePagePhone(window.location.href.split('/').splice(-1)))pero si escribo esto no hay errores:
var phone = useSelector(store => store.phone)¿Por qué si uso useSelector y useDispatch en el mismo archivo? Error: las acciones deben ser objetos simples. Use middleware personalizado para acciones asíncronas. reducir
Debería enviar en una devolución de llamada, no en el cuerpo de su componente.
Como esto:
const MyComponent = () => { const dispatch = useDispatch(); const phone = useSelector(...); const handleSomeUserInitiatedAction = () => { dispatch(...); }; }Si desea enviar en el primer renderizado, puede hacerlo en un useEffect como este:
const MyComponent = () => { const dispatch = useDispatch(); const phone = useSelector(...); useEffect(() => { dispatch(....) },[]); }