IIC2513-2018-2 / syllabus

Material y coordinación del curso
10 stars 4 forks source link

Redirect from React component #60

Closed Okhan97 closed 5 years ago

Okhan97 commented 5 years ago

Hola,

Al hacer fetch desde mi react component (para crear una instancia de cierto modelo) no ocurre la redireccion esperada (siempre despues de crear uno volvía al index). ¿Como puedo redirijirme a ciertas routes desde un componente React?

raulmt commented 5 years ago

Cuando haces click en un link normal, el browser cambia la URL de la página a la nueva URL haciendo un request. Si ese request responde con un redirect, entonces el browser cambia la URL a ese nuevo lugar indicado. El browser está haciendo ya un cambio de ruta, lo que controla el redirect es a dónde.

Lo que estás haciendo con fetch es un request desde JavaScript, en donde se espera obtener un resultado para luego manipularlo o utilizarlo en el contexto de la página ya cargada, desde JavaScript. Ningún redirect de ese request tendrá como efecto cambiar la URL, pues nunca se ha contemplado un cambio de URL. A lo más se puede lograr que fetch "siga" ese redirect y obtenga los datos esperados desde la nueva URL, pero aún así, estará esperando obtener datos, para luego hacer algo con ellos, jamás cambiar la URL del browser.

Si tú quieres que la URL del browser cambie desde JavaScript, tienes que hacerlo explícitamente. Un window.location = "nueva URL" hará precisamente eso. Así que sólo necesitas obtener esa URL desde el response que te llega.