Estoy usando Axios para manejar las llamadas de mi servidor. Vea a continuación dónde llamo al servidor.
export async function deleteProject(projectId) { return await axios({ url: config.projectsEndpoint + "/" + projectId.projectId, method: "DELETE", }); } Tengo un controlador de eventos que elimina un proyecto e incluye un bloque de prueba y captura. Curiosamente, cuando prefacio la función deleteProject() con await , la parte de try de mi bloque no funciona, pero la parte de catch sí. Mis notificaciones de brindis aparecen maravillosamente. Cuando retiro la await , la parte de try de mi bloque funciona, pero mis notificaciones de brindis de catch no aparecen. Consulte a continuación el controlador.
handleArchive = async project => { const originalProjects = this.state.projects; const projects = originalProjects.filter(p => p.projectId !== project); this.setState({ projects }) try { await deleteProject(project) console.log(project) console.log(project) } catch (ex) { if (ex.response && ex.response.status === 404) { toast.error("This project may have already been deleted"); this.setState({ projects: originalProjects }) } else if (ex.response && ex.response.status === 400) { toast.error("Oops! We are having trouble deleting that project."); this.setState({ projects: originalProjects }) } } }Además, aquí es donde llamo al evento onClick.
{ key: 'archive', content: project=> <button style={{color: "white"}} onClick={() => this.props.onArchive(project.projectId)} className="btn btn-sm" href="#"> <i className="fa fa-trash-o fa-lg m-1"> </i> Archive </button> }También recibo un error 400 con esta configuración del controlador. Por favor, hágamelo saber si necesita más información. Se agradece cualquier ayuda, estoy muy perdida.