ReactJS - Agregar una tarea y redireccionar a VerTarea, no ListarTareas

 
Vista:
Imágen de perfil de Francisco
Val: 21
Ha mantenido su posición en ReactJS (en relación al último mes)
Gráfica de ReactJS

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.

Falla-VerTarea
fallaVerTarea2

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder