React router v6 不支持 <Prompt /> 或 usePrompt

Abd*_*mid 12 reactjs react-router

专门将代码库迁移到react-router v6 v6.2.1,并在尝试使用<Prompt />组件或时遇到一些问题usePrompt,结果证明它们在此版本的react-router中不可用。还是我错了?如果有人遇到过同样的问题,或者您知道解决此问题的方法,我们将不胜感激您的帮助。

Jos*_*and 10

v6 目前不支持提示

您必须创建自己的组件来执行检查并显示提示。

  • 是的,仍然没有包含在 v6.4.3 中 (3认同)
  • 是的,除了实现我们自己的逻辑之外,目前似乎没有办法解决这个问题 (2认同)

Ped*_* GM 5

正如文档中所说:

<Prompt>v5 中的版本(以及 v6 测试版中的 usePrompt 和 useBlocker)未包含在当前发布的 v6 版本中。我们决定宁愿使用现有的功能,也不愿花更多时间来确定尚未完全成熟的功能。我们绝对会在不久的将来的某个时候将其添加回 v6,但不会是我们的第一个稳定版本 6.x。

所以你有两个选择:

  1. 创建您自己的组件并处理其中的逻辑。
  2. 降级react-router-dom到 v5。

来源:https ://reactrouter.com/docs/en/v6/upgrading/v5#prompt-is-not-currently-supported