reactjs - React 渲染:从 firebase 渲染数据时,对象作为 React 子级无效
问题描述
我正在尝试从 firebase db 呈现一些数据,但出现此错误:
Error: Objects are not valid as a React child (found: object with keys {}). If you meant to render a collection of children, use an array instead.
这是我的代码:
索引.js
import React, { useState, useEffect } from 'react';
import { useSelector } from 'react-redux';
import { Link } from 'react-router-dom';
import Navbar from '../../components/Navbar/Navbar';
import EventoCard from '../../components/evento-card/EventoCard';
import firebase from '../../config/firebase';
import './home.css';
const Home = () => {
const [eventos, setEventos] = useState([]);
//recuperando o banco;
const db = firebase.firestore();
let listaEventos = [];
useEffect(() => {
db.collection('eventos').get().then(async (resultado) => {
await resultado.docs.forEach(doc => {
listaEventos.push({
id: doc.id,
...doc.data()
})
})
setEventos(listaEventos);
})
})
return (
<>
<Navbar></Navbar>
<br></br>
<div className="row">
{eventos.map(item => <EventoCard key={item.id} titulo={item.titulo} detalhes={item.detalhes} />)}
</div>
</>
);
}
export default Home;
EventoCard.js
import React, { useState, useEffect } from 'react';
import { Link } from 'react-router-dom'
import './evento-card.css';
const EventoCard = (key, titulo, detalhes) => {
return (
<div className="col-md-3 col-sm-12">
<img src="https://via.placeholder.com/150x100" className="card-img-top imgCartao" alt="Imagem Do Evento" />
<div className="card-body">
<h5>{titulo}</h5>
<p className="card-text text-justify">{detalhes}</p>
<div className="row rodape-card d-flex align-itens-center">
<div className="col-6">
<Link to='/' className="btn btn-sm btn-detalhes">+ Detalhes</Link>
</div>
<div className="col-6 text-right">
<i className="fas fa-eye"></i><span>12312</span>
</div>
</div>
</div>
</div>
)
}
export default EventoCard;
我的 json 对象基本上被定义为标题和详细信息。我认为地图功能有问题,但我不知道我在这里缺少什么。
解决方案
我发现出了什么问题:
const EventoCard = ({ key, titulo, detalhes }) => {
我不得不将参数放在大括号之间。
推荐阅读
- powerbi - 根据一列重复值返回另一列的公共值
- c++ - 在 C++ 中不使用 libcurl.dll 发送电子邮件
- python-3.x - 抓取网站哪个更好:硒还是请求?
- node.js - id 必须是符合指定约束的数字
- angular - AngularFireDatabase、Jest 和单元测试,如何创建可重用的类存根?
- download - 从 google colab 中的共享 google drive 链接下载数据
- python - PyQt5 UI 中的 Matplotlib 绘图在绘图更改时不会更新
- c# - 将存档的 blob 复制到联机层
- amazon-web-services - 无法使用 Amazon EMR 访问 Spark 主节点中的烧瓶
- vba - 使用 VBA 代码在 MS Access 中使用 Recordset 从 SQL Server 填充结果