我正在使用react router v5,作为我的历史记录之一。push调用它正在替换最后一个路径部分。
因此,不要使用“/home/menu/allergens/newValue”
它导航到“/home/menu/newValue”
不管有多少条路,它总是取代最后一条?
我使用的是历史。push('modal/selectroute');
为什么会这样?
示例代码:
import { useHistory } from "react-router-dom";
export const Thing = () => {
const history = useHistory();
return (
<div>
<button onClick={() => history.push("modal/selectroute")}>
navigate
</button>
</div>
);
};
2条答案
按热度按时间jjjwad0x1#
它应该导航到
"/thing/modal/selectroute"
作为提供给history的路径. push是相对的对吗?不,
react-router-dom@5
路由和链路不会像RRDv6中那样自动使用相对路径。在v5中,您需要手动构建相对路径。示例:
详情请参见RRDv5 Nesting demo。
vxf3dgd42#
在我的例子中,我错过了路线前面的(/)。你应该试着做一次。例如:history.push(“/modal/selectroute”)。它在我的情况下有效,在这个情况下也可能有效。