我有以下代码,应该从JSON文件中呈现数据。它不显示任何东西,除了带花括号的h1,而不是想要的数据。代码如下:
import prod from "../../data/produtos.json";
export default function Produto(props) {
return (
<figure>
<img src={prod.imagem}></img>
<figcaption>(prod.titulo)</figcaption>
<p>(prod.preco)</p>
<button className="btn"> Adicionar ao carrinho </button>
</figure>
);
}
import "./Produtos.css"
import productions from "../data/produtos.json";
import Produto from "./Produto";
import { useState } from "react";
export default function Produtos(props) {
const [lista, setLista] = useState(productions);
return (
<div className="produtos">
{lista.map((product) => (
<div className="Products">
<Produto id={product.id} {...product} />
</div>
))}
</div>
);
}
[
{
"id": 1,
"titulo": "",
"preco": 16.9,
"imagem": "../public/imagens/pwero.jpg"
},
{
"id": 2,
"titulo": "",
"preco": 26.89,
"imagem": "../public/imagens/oepw.jpg"
},
{
"id": 3,
"titulo": "",
"preco": 17.4,
"imagem": "../public/imagens/ewer.jpg"
},
{
"id": 4,
"titulo": "",
"preco": 2.2,
"imagem": "/////w"
},
{
"id": 5,
"titulo": "",
"preco": 49.99,
"imagem": ""
},
{
"id": 6,
"titulo": "",
"preco": 5.99,
"imagem": "zzzzys"
}
]
=
它应该呈现JSON数据。我不知道问题出在Map上。json文件在两个组件中都被导入。
3条答案
按热度按时间3b6akqbq1#
在
Produto
中,您需要访问props
(而不是prod
)并使用大括号{}
。此时您不应该导入/加载任何JSON。我会用一个空数组初始化
lista
状态,并使用一个效果来获取它(推荐使用),或者从JSON文件加载它。此外,如果您使用Array.prototype.map
,您应该提供一个key
prop。您也可以异步加载JSON。
euoag5mw2#
尝试在Map中添加
return
语句。下面是代码的片段:
khbbv19g3#
1-您不需要将数据导入您的Produto组件。其代码应为:
您必须将js指令放入
parentheses ()
中,而不是将它们放入braces {}
中2-就
Produtos
组件而言,您只需将product作为Produto组件的属性传递