reactjs - 无法用 api [React Native] 填充我的状态
问题描述
我想用我的 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)
}
使用另一个不起作用的 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)
}
解决方案
if (json.Characters) {
setCharacters(json.Characters);
}
API 的响应不包含Characters
密钥,因此这会将您的Characters
状态设置为undefined
. 提供输出的一种解决方案是仅设置Characters
响应中的全部数据:
if (json.Characters) {
setCharacters(json);
}
这将为您提供一些要显示的数据,但可能不是您真正想要的数据。您很可能需要向不同的端点发出请求以获取所需的数据。
推荐阅读
- kubernetes - 使用 Ocelot Kubernetes Provider 17.0.0 时出错 错误代码:UnableToFindServiceDiscoveryProviderError
- blazor - 带有 Rest Api 的 Blazor 项目的项目结构
- three.js - Three.js:如何找到相机的当前平面
- security - 我应该如何将网络划分为具有不同访问要求的相关区域?
- java - int 类型的文字 x 超出范围
- c++ - 调整图像大小导致分割错误 OpenCV C++
- swift - 如何从一个视图控制器导航到另一个?
- timestamp - 具有不同时间戳的多个文件_查找公共时间戳
- html - 标题自定义
- git - 如何配置 git 以在 cocoapods 规范文件中使用访问令牌?