cod*_*ver 4 javascript reactjs
我需要使用以下方式完全更改网址。
let mycomplteUrl = 'http://localhost/tracks/id/4/39'; // http://localhost/tracks/id/4/39/4 or
props.history.push(`${mycomplteUrl}`);
Run Code Online (Sandbox Code Playgroud)
我正在动态创建这个 mycomplteUrl 变量。有时变量可能是这样的
http://localhost/tracks/id/4/39 or http://localhost/tracks/id/4/39/4 or http://localhost/tracks/id/4/39/4/5 (dynamic) or any
Run Code Online (Sandbox Code Playgroud)
仅到http://localhost/tracks/id/4这部分是相同的。我需要像window.location.href = mycomplteUrl普通 JavaScript 一样替换整个 url,但使用 props.history.push 因为我需要避免页面刷新
注意:对于 React Router v6
import { useNavigate } from 'react-router-dom';
function MyComponentOrHook() {
const navigate = useNavigate();
// push
navigate(someUrl ); // syntax
navigate("/about"); // example
// replace - OP's question
navigate(someUrl , { replace: true }); // syntax
navigate("/about", { replace: true }); // example
return ... // JSX or hook return values
}
Run Code Online (Sandbox Code Playgroud)
另外,window.location如果您使用 React Router,请避免使用,除非在极少数情况下(例如 - 导航到外部链接)。
原因:
window.location....window.location导致重新加载,这在 React 应用程序(或任何 SPA)中应该避免。| 归档时间: |
|
| 查看次数: |
13466 次 |
| 最近记录: |