NextJS 13 更新服务器组件数据
P粉015402013
P粉015402013 2023-12-23 12:02:07
[JavaScript讨论组]

所以我正在学习/适应 NextJS 13 及其新的 APP 文件夹。我很难弄清楚如何在无需重新加载页面/应用程序的情况下更新服务器组件上的数据。目前,我的主页服务器组件从 MongoDB 获取项目(事件)列表。如果我在后台更改数据库数据,然后导航到应用程序上的另一条路线并返回主页而不重新加载,则不会显示新数据。仅当我直接从浏览器硬重新加载页面时才会显示它。我的 EventDetails 组件也是如此。如果我在浏览器中加载应用程序后直接在数据库中更改事件的数据之一,则当我导航到该事件的详细信息时,该更改不会显示在应用程序中,除非我直接重新加载页面。

我在获取函数中设置了以下选项

catch: 'no-cache'
next: { revalidate: 1 },

还尝试了在组件文件中导出的设置

export const revalidate = 0;
export const dynamic = 'force-dynamic'

;

但它仍然没有更新值。

这是我的完整代码。

// HomePage Component (app/page.jsx)
import React from 'react';
import MeetupList from './_components/meetups/meetupList';
export const revalidate = 0;
export const dynamic = 'force-dynamic';

const fetchMeetups = async () => {
  const response = await fetch('http://localhost:3000/api/meetup', {
    catch: 'no-cache',
    next: { revalidate: 1 },
  });

  const data = await response.json();

  return data;
};

const HomePage = async () => {
  const meetups = await fetchMeetups();
  return (
    <>
      
    
  );
};

export default HomePage;


//MeetupList.jsx
import MeetupItem from './MeetupItem';

import styles from './MeetupList.module.css';
export const dynamic = 'force-dynamic';

function MeetupList({ meetups }) {
  return (
    
    {meetups.map((meetup) => ( ))}
); } export default MeetupList;

这是否与我认为仍处于 Beta 模式的新服务器操作有关?

谢谢

国际消费电子展

P粉015402013
P粉015402013

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号