-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to handle API Errors with Detail Component #78
Comments
I encountered this too, and solved it by adding a new state property My component looks like this then class Details extends React.Component {
// Adding error state
state = { loading: true, error: null };
componentDidMount() {
const { id } = this.props;
pet
.animal(+id)
.then((data) => {
const { animal } = data;
if (animal === undefined) {
// The API returns a data object with error details, without the animal, so catch it like this
return Promise.reject(new Error('Unable to load animal details'));
}
this.setState({...});
return Promise.resolve();
})
.catch((error) => {
// Catching promise errors, setting state
this.setState({ error });
});
}
render() {
const { loading, error } = this.state;
// Check for error and rethrow
if (error) {
throw error;
}
if (loading) {
return <h1>loading ...</h1>;
}
return (
<div className="details">...</div>
);
}
} |
I have the same doubt, in my case none of the code mentioned here and in the lecture video I got, not working. Here is the code I've written,... import React from "react"; class Details extends React.Component {
} componentDidMount() { render() { loading ...;}
} export default Details; this code is not shoing the details of the pet. Plz help me out. |
I just started the course and want to say thank you so much, I've really been able to pick up the basics pretty quick.
However, within the API, some of the animals return as 404's Example. I've been doing some digging around within the course, and you go into detail about Error Boundaries. However it seems ErrorBoundaries run on render(?) and it doesn't seem to catch when on
componentDidMount()
. I tried catching an error using the Promise provided from the @FrontendMasters pet.animal() method, but even that doesn't seem to work with the Error Boundary.Am I just doing this wrong? Or did was it not mentioned how to handle API 404's bad requests etc.
The text was updated successfully, but these errors were encountered: