Estoy diseñando un sitio web con un componente de formulario que redirige a un componente de "fallo" o "éxito" en función de si el formulario se envía sin error o no. Aquí está el código que estoy usando:
await axios .post('/api/patients/', data, axiosConfig) .then((response) => { history.push('/success'); }) .catch((error) => { history.push('/failure'); });Esto funciona bien incluso cuando intencionalmente hago una solicitud incorrecta apagando mi red o cambiando la ruta. Sin embargo, puedo escribir la ruta "/ éxito" en mi navegador y acceder a ella ya sea que haya enviado el formulario o no. ¿Cómo restrinjo este comportamiento?
No estoy seguro de si es posible rastrear que la ruta se ingresó manualmente, pero puede pasar a los accesorios del componente "éxito" como "enviar: verdadero" y renderizar el componente si existen estos accesorios.
await axios .post('/api/patients/', data, axiosConfig) .then((response) => { history.push({ pathname: '/success', state: { submit: true } }); }) .catch((error) => { history.push({ pathname: '/failure', state: { submit: true } }); });Y en el componente de "éxito" verifique accesorios como:
if (props.location.state.submit) { . . . }