【发布时间】:2021-09-22 10:27:01
【问题描述】:
在我的 React 应用程序中,我创建了以下 NoteDetail 组件。我的问题是:处理多个error 变量的最佳实践是什么,在这种情况下,我可能从我的GET API 请求中获得一个,另一个从我的DELETE API 请求中获得?我想到的第一个解决方案是使用专用的getError 和deleteError 变量,但我不知道这是否是推荐的处理方法。
import { Link, useParams } from "react-router-dom";
import useFetch from "./useFetch";
import { api } from "./api";
import axios from "axios";
const NoteDetail = () => {
const { id } = useParams();
const { data: note, error, loading } = useFetch(api.notes.retrieve(id));
const [error, setError] = useState(null);
const [loading, setLoading] = useState(false);
const handleClick = () => {
axios
.delete(api.notes.delete(id))
.then((response) => {
setLoading(false);
history.pushState("/");
})
.catch((error) => {
setLoading(false);
setError(error.message || error);
});
};
return (
<div className="note-details">
{loading && <div>Loading...</div>}
{error && <div>{error}</div>}
{note && (
<article>
<h2>{note.title}</h2>
<p>Written by {note.author}</p>
<div>{note.body}</div>
<Link to={"/update/" + note.id}>
<button>Edit</button>
</Link>
<button onClick={handleClick}>Delete</button>
</article>
)}
</div>
);
};
export default NoteDetail;
【问题讨论】:
标签: reactjs api error-handling