在客户端突变后,在Next.js页面上更新服务器端 prop 的正确方法?

ryhaxcpt  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(76)

使用Next.js,在客户端突变后,是否有一种“适当”的方法来更新使用getServerSideProps的页面上的数据?
我熟悉这个方法:

const handleRefresh = () => {
    router.replace(router.asPath);
  };

字符串
但想知道是否有更好的方法。

示例

我有一个页面,它检查用户会话,并在getServerSideProps中获取属于该用户的数据--让我们将这些数据称为“项目”。用户的项目数据片段由页面上的多个客户端组件呈现。其中一个组件允许用户改变一些项目数据(标题、描述),并将其保存回数据库。
页面上的另一个组件呈现从服务器获取的项目标题列表,因此这意味着需要更新列表以反映用户执行的变化。
我目前使用的方法是,当用户改变数据时,向API路由发送POST请求,然后如果更新成功,则调用上面的handleRefresh函数,触发页面的完全重新加载,从而在页面上的组件中显示更新后的数据。
这个方法是“正确的”方法吗?或者我的架构可以改进到不需要handleRefresh函数调用吗?

jhdbpxl9

jhdbpxl91#

听起来你需要的是全局状态管理。
你有一个网站的一部分,知道数据是如何变化的,它需要与网站的另一部分共享新数据。全局状态管理涉及到获取需要在这些组件之间共享的状态,并将其放在两个组件都可以访问的存储中。
因为react state会为你触发这些重新渲染,所以你不必担心自己去做。Redux或react上下文API都可以用于此,但在选择解决方案时,你应该考虑你的用例。

相关问题