繁体   English   中英

在非 JSX 上下文中重定向 react-router-dom v6

[英]Redirecting in react-router-dom v6 in a non-JSX context

我正在尝试以编程方式将用户从他们当前正在查看的路线重定向到另一条路线。 就我而言,我不在JSX 环境中,不能使用任何类型的 React 钩子。 我怎么会go这个呢?

我尝试使用下面的代码块进行重定向(尝试使用 JSX),只是意识到它不会工作,因为它不在根路由器的上下文中。

ReactDOM.render(<div>
    <Navigate to="/" />
</div>, document.getElementById("redirect"));

我还想尝试在不使用window.location.href =的情况下进行重定向,因为这会导致整个页面刷新,这是我不想发生的事情。

编辑:根据要求,我正在尝试从Tauri发出的事件重定向到一个页面,该事件由前端的一些 TypeScript 代码处理。 使用window.location.href在任何情况下都不是问题。

这是我正在尝试做的一个例子:

/**
 * Sets up event listeners.
 */
export async function setupListeners() {
    console.log("Setting up link event listeners...");
    await listen("deeplink", onLinked);
}
 
/**
 * Invoked when a deep link call is received.
 * @param event The event.
 */
async function onLinked(event: Event<string>) {
    const { payload } = event;
    if (payload == "test:")
        // redirect("/testPage");
}

redirect

import { redirect } from "react-router-dom";

const loader = async () => {
  const user = await getUser();
  if (!user) {
    return redirect("/login");
  }
};

(来自文档)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM