reactjs - 在 REACT 中跨多个页面显示来自 API 的所有字符
问题描述
我是编程的初学者,我正在尝试使用此 API 构建一个显示所有 Rick 和 Morty 角色的反应应用程序:
https://rickandmortyapi.com/api/character?page=${pages}
使用 fetch,我只能得到前 20 个字符。这是我的代码:
fetch("https://rickandmortyapi.com/api/character")
.then((res) => res.json())
.then((data) => setCharacters(data.results));
}, []);
我尝试使用 axios,但它不会出现在我的 package.json 中。
我还真的很想制作映射字符的函数并构建按物种和性别过滤它们的按钮。
const [characters, setCharacters] = useState([]);
return (
<div>
{character.filter(character => character.gender = "Male").map(filteredCharacter => (
<li>
{filteredCharacter.gender}
</li>
))}
</div>
);
}
export default App;
我有很多错误。帮我?
解决方案
获取所有数据,然后将其添加到您的状态:
const [characters, setCharacters] = useState([]);
useEffect(() => {
fetchData("https://rickandmortyapi.com/api/character");
}, []);
const fetchData = async (url) => {
const res = await fetch(url);
const data = await res.json();
setCharacters((_characters) => {
return [..._characters, ...data.results];
});
if (data.info && data.info.next) {
fetchData(data.info.next);
}
};
推荐阅读
- python - Pandas to_sql 没有在 sqlalchemy 中声明模式
- ruby - Coinbase API 4.2.1 帐户请求方法,缺少参数:`type`
- php - 查询过去一年 - Laravel 5.8
- html - 使用overflow-y:auto时有没有办法隐藏滚动条?
- r-markdown - 在 Rmarkdown 中使用 Tufte 样式将图表绘制为边距图
- html - 时间延迟打破了针对 iframe 的形式
- influxdb - 将 LAST 与 DISTINCT 或 GROUP BY 结合使用?
- java - 如何在 Google Colab 中更改 Java 版本?
- asp.net-core-mvc - 这是设置从 Web 应用程序调用 API 的授权标头的好方法吗?
- c++ - 使用递归的链表中的三大实现