Remix:表单提交后留在同一页面

问题描述 投票:0回答:2

官方文档似乎在表单操作中引用了

redirect
函数。如果您正在构建 CMS,这很好,但是使用某些保存状态(好或坏)来简单刷新当前页面的最佳方法是什么?

remix.run
2个回答
2
投票

在 Remix 中发布表单与将表单发布到经典 Web 服务器非常接近。除非您在

action
<form>
属性中指定不同的 URL,否则它将发布到当前路由,执行
action()
并重新渲染路由。这是一个导航事件,将反映在导航历史记录中。如果您要 POST 到不同的路线,Remix 将导航到新路线并渲染相关组件。 Remix 启用的客户端路由是一个渐进增强,但所有这些都可以在禁用 js 的情况下工作。

此机制可用于刷新页面,因为 remix 在处理操作时会自动重新运行当前匹配路由的所有加载器,类似于经典的 POST

但是,如果您只是想刷新数据,最新版本的 Remix 提供了 useRevalidators 恰好可以满足此用例。

如果您想了解选择此 API 的更多详细信息,请在以下问题中讨论:https://github.com/remix-run/remix/discussions/1996


0
投票

我们可以在 Form 组件中将 navigation prop 设置为 false 以防止重定向/重新渲染。

<Form method="post" navigate={false} /> 
<Form/>
© www.soinside.com 2019 - 2024. All rights reserved.