【发布时间】:2021-07-23 04:53:17
【问题描述】:
我是新来的反应。我想创建一个简单的 React Web 应用程序,从 2 个 api 接收数据,并显示数据。
我有三个组件。 App.js 从两个 api 接收数据,并使用 hooks 和 props 将数据传递给 FruitGrid.js。 FruitGrid.js 映射接收到的两个数据,并传递给 FruitItem。
我的问题在于 FruitGrid.js。在 FruitGrid.js 中接收数据,我可以通过控制台日志查看或使用 html 标签打印。但是当我尝试通过将h1标签更改为<FruitItem></FruitItem>将映射数据发送到FruitItem.js时,我只能成功传递一个数据,而不是两个。
FruitGrid.js
import React from 'react';
import FruitItem from './FruitItem';
const FruitGrid = ({ items, images, isLoading }) => {
return isLoading ? (
<h1>Loading...</h1>
) : (
<section>
{items.map((item) => {
return <FruitItem key={item.id} item={item}></FruitItem>
})}
{images.map(image => {
return <FruitItem key={image.id} image={image}></FruitItem>
// return <h1>{image}</h1>
})}
</section>
)
}
export default FruitGrid;
如果我只做return <FruitItem key={item.id} item={item}></FruitItem>,项目数据将以正确的布局显示,图像不会显示,因为我没有通过。但如果我尝试使用<FruitItem></FruitItem> 传递项目和图像。它会在 FruitItem 中显示错误“TypeError: Cannot read property 'name' of undefined”。
FruitItem.js
import React from 'react'
const FruitItem = ({ item, image }) => {
return (
<div className='card'>
<div className='card-inner'>
<div className='card-front'>
<img src={image} alt='' />
</div>
<div className='card-back'>
<h1>{item.name}</h1>
<ul>
</ul>
</div>
</div>
</div>
)
}
export default FruitItem
有人可以帮忙告诉我如何解决吗?
【问题讨论】:
标签: javascript reactjs api react-props react-component