reactjs 简单获取数据抛出错误- Next.js

zujrkrfu  于 2023-04-20  发布在  React
关注(0)|答案(1)|浏览(137)

我试图从一个虚拟页面做一个简单的抓取。当我运行代码时,我在调试器中得到下面的错误,并且控制台中没有我想要的输出

"use client";
import React, { useEffect, useState } from "react";

export default function Main() {

useEffect(() => {
const fetchTodos = async () => {
  await fetch("https://dummyjson.com/products/1").then((res) =>
     console.log(res.json())
  );
};

fetchTodos();
}, []);

return <div>Fetch Dummy</div>;

layout.jsx:

export default function RootLayout() {
 return (
 <html lang="en">
  <head>
    <title>Digital</title>
  </head>
  <body>
    <Main></Main>
  </body>
 </html>
 );
}

捕获SyntaxError:“undefined”在JSON中不是有效的JSON。parse()at parseModel(webpack-internal:///
在ServerRoot组件中发生了上述错误:

8cdiaqws

8cdiaqws1#

res.json()操作是异步的,所以console.log只会收到一个promise。你需要等待它或者使用回调。
另外,不要将async/await与回调函数混合使用。选择其中一个。例如使用async:

const res = await fetch("https://dummyjson.com/products/1");
const data = await res.json();
console.log(data)

此输出

{id: 1, title: 'iPhone 9', description: 'An apple mobile which is nothing like apple', price: 549, discountPercentage: 12.96, …}

相关问题