無法使用 getStaticProps 將數據從頁面傳遞到子組件

阿拉·本·艾查

我正在處理 next.js 項目,我正在嘗試將數據從“gymlist”頁面傳遞到“table”組件。

這是我有 getStaticProps 函數的“gymlist”頁面:

export default function Gyms({gyms}) {
   return (
       <Table gyms={gyms}/>
   )
}

export async function getStaticProps() {
  const res = await fetch(`${server}/api/gyms`)
  const gyms = await res.json()
  console.log(gyms);
  if (!gyms) {
    return {
      notFound: true,
    }
  }
  return {
    props: {
      gyms,
      // Will be passed to the page component as props
    },
  };
  
}

console.log 正確顯示了我在數據庫中的健身房列表。

這是我收到錯誤的表組件:gyms.map is not a function

export default function Table(props) {
   const [gyms, setGyms] = useState(props);

   return (
   {gyms?.map((gym, index) => (
      <p> {gym.name} </p>
   ))}
   );
}
成年人

當您嘗試使用props.gyms您的useState默認值,你傳遞一個對象(道具對象:{ gyms: [...] })而不是健身房陣列。

它可以通過傳遞props.gymsuseState:來解決useState(props.gyms),或者props.gyms直接在你的組件中使用 render: 來解決{props.gyms.map(...)}

在這種情況下,您不需要狀態。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用#getStaticProps()将Next.js部署到Vercel的问题

在 getStaticProps 中使用路由器

如何使用 getStaticProps 重定向?

在组件中使用 getStaticProps

如何使用反應中的函數將json數據從一個組件傳遞到另一個組件

無法將數據從反應發送到快遞服務器

如何將輸入值數據從 Vue 組件傳遞到根元素

無法從網頁中抓取表格數據

無法在 Next Js 的內部頁面的 getStaticProps 函數中找到文件路徑

無法將二維數組傳遞給 C++ 中的函數

Python Websockets 使用 Queue 將數據從客戶端處理程序傳遞到協程進行處理

使用傳遞給子組件的數據使用 MSW 測試 React-query

如何使用 MatDialog 將行數據或數組對像傳遞給 Angular 中的組件

Nuxt組件中無法使用axios從api獲取數據

Flutter - 無法將類字段傳遞給子組件

如何使用 POST 請求將 JSON 數據從 React 傳遞到 Django?

無法使用 django 從 mysql 獲取數據

將運行時數據從組件傳遞到 HoC?

如何將數據從組件傳遞到 getServerSideProps

如何使用箭頭函數將函數傳遞給組件?

如何將數據從組件傳遞到 ReactJS 中的表單提交?

從後端獲取數據,然後使用draft-js將數據傳遞給editorState

使用 Laravel 中的控制器將數據從數據庫傳遞到刀片視圖

我無法將數據從控制器傳遞到 CodeIgniter 3 中的視圖

在反應中使用 Link 將參數傳遞給另一個組件

傳遞將在子組件中以樣式使用的道具 - Vue

無法將值從組件傳遞到模板

從子組件向上傳遞狀態並使用 React 調用函數

无法在 _app.js 中使用 getStaticProps