Не могу заполнить мое состояние с помощью api [React Native] - PullRequest
2 голосов
/ 09 июля 2020

Я хочу заполнить свое состояние данными api (символами), но я даже не могу получить данные из json (console.log (json)). У кого-то есть идея помочь мне, пожалуйста?

import 'react-native-gesture-handler';

import React, {useState,useEffect} from 'react';
import {
    Text,
    View,


} from 'react-native';
export default HomeScreen = ({navigation}) => {

    const [Characters, setCharacters] = useState([

    ])
    const getCharacters = async () => {

        let response = await fetch(
            'https://www.dnd5eapi.co/api/'
        );
        let json = await response.json();


        if (json.Characters) {
            setCharacters(json.Characters);

        }
        console.log(Characters)
    }

мой console.log даже не появляется введите описание изображения здесь

обновленный код с другим API, который тоже не работает:

    const getCharacters = async () => {

        let response = await fetch(
            'https://reactnative.dev/movies.json'
        );
        let json = await response.json();


        if (json['Characters']) {
            setCharacters(json.movies);

        }
        console.log(Characters)
    }

1 Ответ

0 голосов
/ 09 июля 2020
if (json.Characters) {
    setCharacters(json.Characters);
}

Ответ API не содержит ключа Characters, поэтому ваше состояние Characters устанавливается на undefined. Одно из решений, которое даст результат, - просто установить Characters для всех данных из ответа:

if (json.Characters) {
    setCharacters(json);
}

Это даст вам некоторые данные для отображения, но, вероятно, это не те данные, которые вы действительно хотите. Скорее всего, вам нужно сделать запрос к другой конечной точке, чтобы получить нужные данные.

...