Agregar una tarea y redireccionar a VerTarea, no ListarTareas
Publicado por Francisco (6 intervenciones) el 22/02/2020 20:15:50
Buenas Tardes, necesito ayuda con al ingresar una tarea me redireccione a VerTarea pero con el id traido desde el método post y con los datos traídos del formulario, no con el error llamado "500 Internal Server Error".
Estas son las imágenes que muestran el error.


Y éste es el código mediante el cuál estoy haciendo el redirect en NuevaTarea.jsx
Y éste es el método post en el controlador de tareas, por el cuál yo ya estoy mandando la tarea creada. Acá no tengo ningún error. Sólo tengo que actualizar el id en NuevaTarea pero no sé cómo. Necesito saber cómo puedo resolverlo.
Acá va el post:
Yo simplemente quiero que en la url me traiga el id y lo pueda actualizar. ¿Se les ocurre alguna solución?, desde ya, muchas gracias.
Estas son las imágenes que muestran el error.


Y éste es el código mediante el cuál estoy haciendo el redirect en NuevaTarea.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
componentDidMount() {
this.props.nuevaTarea();
}
// idTarea = null;
submit = tarea => {
return this.props
.guardarTarea(tarea)
.then(response => {
/*Ver la siguiente linea: console.info(response), acá me está arrojando la palabra "undefined",
algo estoy haciendo mal. */
console.info(response);
// this.idTarea = response.id;
this.setState({ redirect: true });
})
.catch(err => {
throw new SubmissionError(this.props.errores);
});
};
render() {
return (
<div>
<h2>Nueva Tarea</h2>
{/* <Redirect to ={'/tareas/' + this.idTarea + '/ver'} /> */}
{this.state.redirect ? (
<Redirect to ={'/tareas/' + this.props.tarea._id + '/ver'} />
) : (
<FormularioTarea tarea={this.props.tarea} onSubmit={this.submit} />
)}
</div>
);
}
}
Y éste es el método post en el controlador de tareas, por el cuál yo ya estoy mandando la tarea creada. Acá no tengo ningún error. Sólo tengo que actualizar el id en NuevaTarea pero no sé cómo. Necesito saber cómo puedo resolverlo.
Acá va el post:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
app.post('/api/tareas', async (req, res) => {
const { nombre, descripcion, estaFinalizada, fechaCreacion, fechaActualizacion} = req.body;
const tarea = new Tarea({
nombre,
descripcion,
estaFinalizada,
fechaCreacion: moment(fechaCreacion).format('MM-DD-YYYY HH:mm:ss'),
fechaActualizacion: moment(fechaActualizacion).format('MM-DD-YYYY
HH:mm:ss')
});
try {
let nuevaTarea = await tarea.save();
res.status(201).send(nuevaTarea);
} catch (err) {
if (err.name === 'MongoError') {
res.status(409).send(err.message);
}
res.status(500).send(err);
}
});
Yo simplemente quiero que en la url me traiga el id y lo pueda actualizar. ¿Se les ocurre alguna solución?, desde ya, muchas gracias.
Valora esta pregunta


0