【发布时间】:2019-07-30 13:44:45
【问题描述】:
当我尝试对从父组件获取的图像进行 .map 以渲染从 unsplash 获取的图像时,出现类型错误 .map 不是函数错误。 我已经附上了问题的代码。 如果错误得到解决,则意味着显示搜索栏中的图像
import React, { useState } from 'react';
import axios from 'axios';
import SearchBar from '../SearchBar/SearchBar';
import ImageList from '../ImageList/ImageList';
const API_KEY = process.env.REACT_APP_ACCESS_KEY;
const SearchPage = () => {
const [searchText, setSearchTerm] = useState('');
const [image, setImage] = useState([]);
const onInputChange = (e) => {
setSearchTerm(e.target.value);
};
const fetchImages = () => {
axios.get('https://api.unsplash.com/search/photos', {
params: { query: searchText },
headers: {
Authorization: API_KEY,
},
})
.then((data) => {
setImage(data.data);
});
};
console.log(image);
const onSubmitHandler = (e) => {
e.preventDefault();
fetchImages();
};
return (
<div>
<SearchBar
onSubmitHandler={onSubmitHandler}
onInputChange={onInputChange}
searchText={searchText}
/>
<ImageList image={image} />
</div>
);
};
export default SearchPage;
---------------------------------------------------------------------
/* eslint-disable jsx-a11y/alt-text */
/* eslint-disable react/prop-types */
import React from 'react';
const ImageList = ({ image }) => {
const imgs = image && image.map(img => (
<img
key={img.id}
src={img.urls.regular}
/>
));
return (
<div>
{' '}
{imgs}
{' '}
</div>
);
};
export default ImageList;
当我尝试对从父组件获取的图像进行 .map 以渲染从 unsplash 获取的图像时,出现类型错误 .map 不是函数错误。 我已经附上了问题的代码。 如果错误得到解决,则意味着显示搜索栏中的图像
【问题讨论】:
-
尝试
console.log图片属性 -
首先,尝试移除 axios 调用,如果没有错误显示,这意味着问题出在该调用的响应中。之后,在 axios 调用中,添加
console.log(data.data)并将您看到的内容添加到您的问题中 -
与 Unsplash 中的图像数组相同