我试图根据backgroundImage
的值动态选择item.imageLinks.smallThumbnail
。
如果我的API返回的数组具有smallThumbnail
URL,那么我想将其用作backgroundImage
或在backgroundImage
中使用book.png
的本地默认../public
。
以下是我的代码,但是当item.imageLinks.smallThumbnail
为undefined
且未使用备用book.png
时却无法使用,但出现错误:Type Eror: Cannot Read 'smallThumbnail of undefined
请帮忙。
谢谢
return(
<ol className="books-grid">
{book.map( (item) => (
<li key={item.id}>
<div className="book">
{item.shelf && (
<div className="book-top">
<div
className="book-cover"
style={{ width: 128, height: 193, backgroundImage: `url({${item.imageLinks.smallThumbnail} || ../public/book.png } )` }}></div>
最佳答案
由于您的imageLinks
本身不是属性,因此可以这样处理:
let imageUrl = item.imageLinks ? item.imageLinks.smallThumbnail : '../public/book.png';
return(
<ol className="books-grid">
{book.map( (item) => (
<li key={item.id}>
<div className="book">
{item.shelf && (
<div className="book-top">
<div
className="book-cover"
style={{ width: 128, height: 193, backgroundImage: `url(${imageUrl})` }}></div>