失败的道具类型:道具 `authors` 在 `Book` 中被标记为必需,但其值为 `undefined`

Failed prop type: The prop `authors` is marked as required in `Book`, but its value is `undefined`

我正在创建一个应用程序,用户可以在其中使用 api 调用来搜索图书。每当我搜索一本书时,我都会收到此错误。原因是因为 authors 数组最初是未定义的。但这不会发生在标题或缩略图上。有什么办法可以解决这个错误吗?

Searchpage.js

import React, { useEffect, useState } from 'react';
import { BsArrowLeftShort } from 'react-icons/bs';
import { debounce } from 'debounce';
import SearchBar from '../components/SearchBar';
import { search } from '../api/BooksAPI';
import Book from '../components/Book';

const SearchPage = () => {
  const [query, setQuery] = useState('');
  const [data, setData] = useState([]);

  const handleChange = (e) => {
    setQuery(e.target.value);
  };

  useEffect(() => {
    const bookSearch = debounce(() => {
      if (query.length > 0) {
        search(query).then((res) => {
          if (res.length > 0) setData(res);
          else setData([]);
        });
      } else {
        setData([]); // make sure data is not undefined
      }
    }, 1000);
    bookSearch();
  }, [query]);

  return (
    <div>
      <SearchBar
        type="text"
        searchValue={query}
        placeholder="Search for a book"
        icon={<BsArrowLeftShort />}
        handleChange={handleChange}
      />
      {console.log(data)}
      {data.map((book) => {
        console.log(book.authors);
        return (
          <Book
            key={book.id}
            title={book.title}
            authors={book.authors}
            thumbnail={book.imageLinks.thumbnail}
          />
        );
      })}
    </div>
  );
};

export default SearchPage;

Book.js

import React from 'react';
import PropTypes from 'prop-types';

const Book = ({ title, authors, thumbnail }) => (
  <div>
    <img src={thumbnail} alt={title} />
    <div>{title}</div>
    <div>{authors}</div>
  </div>
);

Book.propTypes = {
  thumbnail: PropTypes.string.isRequired,
  title: PropTypes.string.isRequired,
  authors: PropTypes.arrayOf(PropTypes.string).isRequired,
};

export default Book;

编辑:这是 promise 响应的屏幕截图。我在承诺链中添加了一个 console.log 。 authers 数组的值不会显示为未定义。请注意,这出现在控制台警告之前。

尝试在所有情况下向 Book 提供所需的 属性

authors={book.authors || []}

或将 authors 作为不需要的道具放入 Book 否则