Dataset/JS/ReactFetchAPI/index.tsx (29 lines of code) (raw):
import React, {useEffect, useState} from 'react';
import axios from 'axios';
interface Character {
name: string;
url: string;
}
const CharacterList: React.FC = () => {
const [characters, setCharacters] = useState<Character[]>([]);
const [loading, setLoading] = useState<boolean>(true);
useEffect(() => {
const fetchCharacters = async () => {
try {
const response = await axios.get('https://swapi.dev/api/people');
setCharacters(response.data.results);
} catch (error) {
console.error('Failed to fetch characters:', error);
} finally {
setLoading(false);
}
};
fetchCharacters();
}, []);
if (loading) return <div>Loading...</div>;
return (
<ul>
{characters.map((character) => (
<li key={character.url}>{character.name}</li>
))}
</ul>
);
};
export default CharacterList;