Я строю небольшое приложение реагировать. Основная задача - создать приложение про покемонов с помощью PokeApi. Когда я нажимаю на pokeCard, на моей боковой панели должна отображаться основная информация о pokemon. Итак, я хочу, чтобы отображалось количество покемонов. Как мы знаем, все номера начинаются с #. Но в PokeApi число покемонов не начинается с # и не содержит 0. Например, число Charmander равно # 004, а в PokeApi Id равно 4. Итак, я создал условие с помощью логических операторов. Пожалуйста, посмотрите:
{(pokemon.id.length === 1 && <span>#00{pokemon.id}</span>) ||
(pokemon.id.length === 2 && <span>#0{pokemon.id}</span>) ||
(pokemon.id.length === 3 && <span>#{pokemon.id}</span>)}
Надеюсь, я создал правильно. Но на моем экране я вижу TypeError: Cannot read property 'length' of undefined
. Я думаю, это потому, что прежде чем я нажму, pokemon.id не определен. Я пытаюсь создать typeof(pokemon.id) == "undefined" && <span>loading</span>
, но это не работает.
Это код, как я устанавливаю Pokemon.
const [SelectedPokemon, setSelectedPokemon] = useState([]);
const fetchPokemonDetails = (pokemonId) => {
fetch(`${API_URL}${pokemonId}`)
.then((result) => result.json())
.then((result) => {
setSelectedPokemon(result);
}, setLoadingForSelectedPokemon(false))
.catch((error) => console.log("Error:", error));
};
Можете ли вы помочь мне это исправить?