Javascript Next JS:如何更新传递给组件的数据?

Javascript Next JS:如何更新传递给组件的数据?,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我有一个组件,我想基于获取的json显示字段。我不熟悉JS/React/Next.JS,我不知道如何在从API获取json后将其传递给组件 我使用getInitialProps成功地传递了数据,但在尝试更新信息时没有成功。这是起作用的功能: Home.getInitialProps=async()=>{ const res=等待取数('http://localhost:3000/api/daily') const json=await res.json() 返回{data:json} }您需要

我有一个组件,我想基于获取的json显示字段。我不熟悉JS/React/Next.JS,我不知道如何在从API获取json后将其传递给组件

我使用getInitialProps成功地传递了数据,但在尝试更新信息时没有成功。这是起作用的功能:

Home.getInitialProps=async()=>{
const res=等待取数('http://localhost:3000/api/daily')
const json=await res.json()
返回{data:json}

}
您需要将API调用逻辑置于useffect中。使其仅在加载时运行一次

import React, {useState, useEffect} from 'react'
import Head from 'next/head'
import AriaItem from '../components/AriaItem'
import fetch from 'isomorphic-unfetch'

const getArias = async () => {
  const res = await fetch('http://localhost:3000/api/daily')
  const json = await res.json()
  return {data: json}  
};

const Home = ({data}) => {
  const [ariaInfo, setAriaInfo] = useState(data);

  useEffect(() => {
    let {data} = getArias();
    setAriaInfo(data); // sets ariaInfo state
  } 
  , []);

  return (
  <div>
    <Head>
      <title>Home</title>
      <link rel="icon" href="/favicon.ico" />
      <link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
    </Head>
          <div className="w-full m-4">
          My Aria Result:
          <AriaItem ariaInfo={ariaInfo} />
        </div>   
  </div>
)}

export default Home
import React,{useState,useffect}来自“React”
从“下一个/头”导入头
从“../components/AriaItem”导入AriaItem
从“同构取消蚀刻”导入提取
常量getArias=async()=>{
const res=等待取数('http://localhost:3000/api/daily')
const json=await res.json()
返回{data:json}
};
常量Home=({data})=>{
常量[ariaInfo,setAriaInfo]=使用状态(数据);
useffect(()=>{
设{data}=getArias();
setAriaInfo(数据);//设置ariaInfo状态
} 
, []);
返回(
家
我的结果是:
)}
导出默认主页

注意:为了简化可读性,我将
getArias()
移出了组件。

欢迎使用SO!你能为Home组件多分享一点代码吗?@artfulbeest谢谢!是的,我刚刚编辑了原始帖子,在最后展示了完整的主页组件。谢谢,这真的很有帮助。