我已经把一个客户端和一个服务器组件(基于App Router
)放在一起,并设法根据用户输入(特别是当用户输入任何内容时)刷新服务器,基本上强制刷新路由。
router.push(pathname)
到目前为止一切顺利,但我实际上需要将用户输入从客户端传递到服务器,以便根据它(即日期范围)过滤提取。
我猜我可以使用dynamic routes,但语义上感觉不对(这不像我正在导航到实体细节)。另外,server actions看起来也是我所需要的,但由于它是一个实验性的特性,我想知道是否已经有了一种不同的方法可用;基于用户输入的服务器获取对我来说似乎是一个基本的功能,但仍然找不到一个直接的“官方”模式来让它工作。
任何替代方案/建议?
编辑正如@ivanatias所建议的,这个线程展示了如何通过查询字符串传递参数,虽然这可能会起作用,但不幸的是,由于url正在更改,输入字段的状态丢失。
1条答案
按热度按时间i2byvkas1#
你可以在Next.js 13 doc(app Dir)中使用更新
searchParams
示例。usePathname
、useSearchParams
和useRouter
)的组合,从next/navigation
导入。