【发布时间】:2022-01-11 08:11:55
【问题描述】:
我有以下代码!
import React, { useState } from "react";
function App() {
const [movies, setMovies] = useState([]);
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState<string | null>();
async function fetchMoviesHandler() {
setIsLoading(true);
setError(null);
try {
const response = await fetch("https://swapi.dev/api/film/");
const data = await response.json();
const transformedMovies = data.results.map((movieData: any) => {
return {
id: movieData.episode_id,
title: movieData.title,
openingText: movieData.opening_crawl,
releaseDate: movieData.release_date,
};
});
setMovies(transformedMovies);
} catch (err: any) {
setError(err.Message);
console.log(err);
}
setIsLoading(false);
}
return (
<React.Fragment>
<section>
<button onClick={fetchMoviesHandler}>Fetch Movies</button>
</section>
<section>
{!isLoading && movies.length > 0 && <p>Movies fetched!</p>}
{!isLoading && movies.length === 0 && !error && <p>Found no movies.</p>}
{!isLoading && error && <p>{error}</p>}
{isLoading && <p>Loading...</p>}
</section>
</React.Fragment>
);
}
export default App;
这里的 URL 不正确,会抛出 404 错误,我希望显示该错误消息。当我 console.log 错误消息显示在控制台上,但错误消息未显示在网页上。如果有人可以帮助我解决这个问题,将不胜感激。
【问题讨论】:
标签: reactjs typescript async-await try-catch http-error