【问题标题】:MongoDB - Next.js I can't map the dataMongoDB - Next.js 我无法映射数据
【发布时间】:2020-11-07 03:52:47
【问题描述】:

我正在从数据库中获取数据以将这些数据映射到页面中:

import { connectToDatabase } from "../../utils/mongodb";
import { getSession } from 'next-auth/client'


export default async (req, res) => {
  const { db } = await connectToDatabase();
  const session = await getSession({ req });

   const companies = await db
    .collection("companies")
    .find({ "owner.$id": session.id })
    .sort({ metacritic: -1 })
    .limit(20)
    .toArray();

    res.json(companies)
};

我想设置状态映射这个数据,但它给出了一个错误,

const [companies, setCompanies] = useState([])

fetch('../api/getcompanies')
      .then((response) => response.json())
      .then((data) => {
        setCompanies(data);
      })
      .catch((e) => {
        alert('fetch failed');
      });

错误:对象作为 React 子对象无效(发现:对象带有键 {_id, name, number})。如果您打算渲染一组子项,请改用数组。

【问题讨论】:

    标签: reactjs mongodb next.js


    【解决方案1】:

    示例文档是什么样的? setCompanies() 函数是什么?

    【讨论】:

    • 它正在获取一个类似 data[0].name 的对象,但在状态(公司)中它显示为未定义。 setCompanies() 是一个设置状态的 React 函数,在我的问题中是公司。
    猜你喜欢
    • 2019-05-12
    • 2021-07-29
    • 2015-01-21
    • 2023-03-04
    • 1970-01-01
    • 2017-12-02
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多