文档 中说:
可以传递一个
To
值(与<Link to>
相同的类型),带有可选的第二个{ replace, state }
参数,或者不传递任何内容。
但没有说明它是替换整个历史记录栈还是仅替换当前路由。我不知道。
可以传递一个
To
值(与<Link to>
相同的类型),带有可选的第二个{ replace, state }
参数,或者不传递任何内容。
但没有说明它是替换整个历史记录栈还是仅替换当前路由。我不知道。
replace
选项属性是一个REPLACE导航操作。它是一个重定向,替换历史堆栈中的当前条目,而不是像常规导航一样PUSH一个新条目到顶部。
navigate(path); // PUSH, navigate
navigate(path, { replace: true }); // REPLACE, redirect
useNavigate
钩子返回一个函数,让你可以编程式地导航,例如在表单提交后。如果使用replace:true
,导航将替换历史堆栈中当前的条目,而不是添加一个新的条目。
import { useLocation, Navigate } from "react-router-dom"
const location = useLocation ()
‹Navigate to="/" state={{ from: location }} replace /›
history
对象可以告诉您历史堆栈的长度,但我没有看到 RRD 中允许您重置它的任何内容。您可能需要走出 React 并查看window.history
,尽管 History API 似乎也没有公开此功能。 - Drew ReeseuseNavigate
钩子仅返回一个navigate
函数。您可以通过在选项参数中指定replace:true
属性来通过REPLACE操作进行“重定向”。navigate(path,{replace:true})
替换了旧版RRD中的history.replace(path)
。 - Drew Reese