reactjs - react 无法调用和识别带有 axios 的组件并显示空白屏幕
问题描述
我正在创建一个网站来使用 create-react-app 搜索书籍我正在使用打开的 api 密钥并首先构建 UI,但我的反应无法调用组件
这是一个父组件
import React, { useEffect, useState } from 'react';
import BookItem from './BookItem';
import axios from 'axios';
const BookList = () => {
const [books, setBooks] = useState(null)
const [loading, setLoading] = useState(false)
useEffect(() => {
const fetchData = async () => {
setLoading(true)
try {
const response = await axios.get('ttb/api/ItemList.aspx?ttbkey={private_api_key}&QueryType=Bestseller&MaxResults=50&start=1&SearchTarget=Book&output=js&Version=20131101', )
setBooks(response.data.books)
} catch (e) {
console.log(e)
}
setLoading(false)
}
fetchData()
}, [])
if (loading) {
return <div>Now on loading...</div>
}
if (!books) {
return null
}
return (
<div>
{
books.map(item => (<BookItem key={item.url} item={item}/>))
}
</div>
);
};
这是一个从父组件获取道具的子组件
import React from 'react';
const BookItem = ({ item }) => {
const {title, author, cover, link, description, pubDate } = item
return (
<div>
<div className="thumbnail">
<a href={link}>
<img src={cover} alt="coverImg"/>
</a>
</div>
<div className="info">
<h2>{title}</h2>
<ul>
<li><p>{author}</p></li>
<li><p>{description}</p></li>
<li><p>{pubDate}</p></li>
</ul>
</div>
</div>
);
};
export default BookItem;
我现在可以在加载时看到
if (loading) {
return <div>Now on loading...</div>
}
像这样...
我期待通过 api 显示的书籍信息。我在哪里可以看到它
解决方案
推荐阅读
- angularjs - 空白页和 TypeError Angular Firebase
- azure-cosmosdb - EF Core 3.1 + Cosmos DB 和 Interceptor 可以一起工作吗?
- android - 如何在通过中介与各种广告网络一起使用 admob 时请求对个性化广告的同意?
- node.js - Laravel 7.9.2 “npm install” 安装了这么多文件
- javascript - 在 React 中使用 axios 在浏览器中显示来自 api 的对象数组
- reactjs - 如何通过graphql查询将br传递给内容属性或p标签内
- r - R访问矩阵到数组3d
- php - 无法存根或模拟类或接口“PhpOffice\PhpSpreadsheet\Worksheet\Worksheet”
- python - Python 脚本未从 crontab 执行
- python - 在 Python 中设置系统时钟?