reactjs - 将类型设置为传入的apiye状态
问题描述
我想将传入的 API 置于状态,但它显示未定义。我想丢弃我的数据来 randomcocktail 然后使用它。
随机的.tsx
import { useState, useEffect } from "react";
import { CocktailType } from "../Utils/data";
import "../Style/index.scss";
const Random = () => {
const [randomCocktail, setRandomCocktail] = useState<CocktailType[]>();
useEffect(() => {
const getRand = async () => {
const response = await fetch(
"https://www.thecocktaildb.com/api/json/v1/1/random.php"
);
const data = await response.json();
const { cocktail = [] } = data;
setRandomCocktail(cocktail[0]);
console.log(data);
console.log(randomCocktail);
};
getRand();
}, []);
return (
<div className="randomPage">
<div className="leftRand"></div>
<div className="rightRand"></div>
</div>
);
};
export default Random;
数据.ts
export type CocktailType={
strDrink :string;
strTag:string|null;
strVideo:string|null;
strCategory:string;
strIBA:string|null;
strAlcoholic:string;
strGlass:string;
strInstructions:string;
strDrinkThumb:string;
}
解决方案
尝试这个
import { useState, useEffect } from "react";
import { CocktailType } from "../Utils/data";
import "../Style/index.scss";
const Random = () => {
const [randomCocktail, setRandomCocktail] = useState<CocktailType[]>();
useEffect(() => {
const getRand = async () => {
const response = await fetch(
"https://www.thecocktaildb.com/api/json/v1/1/random.php"
);
const data = await response.json();
const cocktail = data.drinks;
setRandomCocktail(cocktail[0]);
console.log(data);
console.log(randomCocktail);
};
getRand();
}, []);
return (
<div className="randomPage">
<div className="leftRand"></div>
<div className="rightRand"></div>
</div>
);
};
export default Random;
推荐阅读
- java - 在 IntelliJ Idea 的路径字符串中使用 $PROJECT_DIR$
- asp.net - 检查数据库的表单输入,然后响应一些特定的内容
- database - 优先自适应队列
- .net - 为什么我收到错误消息:“执行命令时出错:dotnet publish”?
- python - 从现有列表创建对称列表
- flutter - 如何使用 CarouselSlider 制作 customPaint
- google-colaboratory - 在 Google Colab 中未检测到支持 CUDA 的设备
- postgresql - 通过 Cron 表达式以外的东西触发 Pg_Cron Job?
- python - 拆包 pands read_HTML 数据框
- oracle - 面对 SQL 错误 [600] [60000]:ORA-00600:内部错误代码,参数:[HO 定义:Long fetch] - SQL Developer