gpt4 book ai didi

reactjs - React Router Dom Redirect 需要刷新页面才能工作

转载 作者:行者123 更新时间:2023-12-04 15:25:18 25 4
gpt4 key购买 nike

我正在使用 react-router-dom 并且在重定向时遇到了奇怪的行为。我正在尝试从/重定向到/something。所以我用了:

        <Switch>
<Redirect
exact
from='/'
to='/something'
/>
<Route
component={Garden}
exact
path='/something'
/>
</Switch>

当我打开 localhost:3000/时,我被重定向到 localhost:3000/something 但页面是空白的。当我刷新页面或直接访问/something 时,页面按预期显示。

当我使用 react-router-hash-link 来处理 anchor 标记时,会发生类似的行为。将滚动设置为平滑滚动时,我可以看到页面平滑滚动,但一旦到达标签,页面就会变成空白。为了让它工作,我需要刷新页面,这很不方便。

谢谢你,

最佳答案

您在问题中显示的代码块看起来不错。

您可能未正确配置路由器。

See working demo here I created here它使用您的 switch 代码。检查路由器配置并将其应用于您的代码库。

路由器

import {
BrowserRouter as Router,
Route,
Switch,
Redirect
} from "react-router-dom";
import Home from "./Home";

export default function App() {
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<Router>
<Nav />
<Switch>
<Redirect exact from="/" to="/something" />
<Route component={Home} exact path="/something" />
</Switch>
</Router>
</div>
);
}

组件

const Home = props => {
const [val, setVal] = useState();
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/users")
.then(res => res.json())
.then(res => res.map(user => user.username))
.then(userNames => setVal(userNames));
});
return <div>Home - {val}</div>;
};

export default Home;

关于reactjs - React Router Dom Redirect 需要刷新页面才能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62373645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com