javascript - 使用 useNavigate 和 state 进行重定向似乎很难完成

标签 javascript reactjs react-hooks react-router-dom

我正在尝试做的事情: 我有一张客户正在填写的表格。他们在支付预约费用之前选择预约的日期和时间。在付款过程中,他们会被重定向到托管的付款页面,然后返回完成该过程。当其重定向时,一些 CC 信息位于路径中。我正在尝试使用Params 来获取该信息,然后重定向到他们所在的页面。部分参数告诉我他们的付款已获得批准,这就是我所需要的。我需要根据此将状态设置为已批准。然后在我的预约页面中使用该状态,完成表单并提交,完成后将状态设置回 false。

当前代码:

const location = useLocation();
  let navigate = useNavigate();
const params = new URLSearchParams(location.search);
 <Route
                path='/confirm'
                element={
                  params.has('ssl_approval_code') ? (
                  
                    navigate('./appointments', { approved: true })
                  ) : (
                    <div style={{ height: '1000px' }}>
                      Error occurred while processing card. Please use a
                      different card or contact client.
                    </div>
                  )
                }
    />
  <Route
                exact
                path='/appointments'
                element={
                  <Appointment                 
                    navigate={navigate}      
                  />
                }
    />

然后尝试在提交函数的末尾执行此操作 navigator({approved: false });

目前我的导航根本不起作用。在我使用 Redirect 的版本 5 之前,状态很困惑。但当时至少是在重定向。它只是不会重置状态,所以我使用 useNavigate 切换到版本 6。

最佳答案

react-router-dom v6 中,状态在第二个参数的 options 对象中发送到 navigate

useNavigate

declare function useNavigate(): NavigateFunction;

interface NavigateFunction {
  (
    to: To,
    options?: { replace?: boolean; state?: any }
  ): void;
  (delta: number): void;
}

将对象移动到 options 对象的 state 属性中。

navigate('./appointments', { state: { approved: false } });

关于javascript - 使用 useNavigate 和 state 进行重定向似乎很难完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70615574/

相关文章:

css - 如何在 Windows 上将 docker nginx 与 express 和 react 应用程序连接起来

reactjs - 我什么时候应该将命名导入与 React hooks 一起使用?

javascript - 自动启动和停止node.js脚本

javascript - handlebars.js 帮助程序不起作用

javascript - 如何从 firestore 获取没有元数据的文档

javascript - 如何根据条件为 JSX 中的键赋予变量的值

javascript - 如何从数组中的名称调用对象

javascript - 小数文本框仅接受正值和负值

reactjs - Next.js - useEffect 甚至不执行一次

reactjs - 在 HoC 中使用 React hook 时发出警告