reactjs - React Navlink 更改 url 但不更改页面
问题描述
我有反应应用程序,它也从 URL 获取参数并使用它从 Mongoose 获取数据,当有 navlink 更改用户的 ID 时,单击 URL 更改时,但页面不会刷新或更改。
App.js 看起来像这样:
return (
<div className="App">
<BrowserRouter> {
isAuth()
}
<div>
<div className="content">
<Switch>
<PublicRoute path="/login" component={Login} isAuthenticated={isAuthenticated} />
<PrivateRoute path="/:id/whatsapper" component={Whatsapper} isAuthenticated={isAuthenticated} />
<PrivateRoute path="/profile" component={ProfilePage} isAuthenticated={isAuthenticated} />
<PrivateRoute path="/:id/canned-replies-settings" component={CannedRepliesPage} isAuthenticated={isAuthenticated} />
<PublicRoute path="/reset-password" component={ForgotPasswordPage} isAuthenticated={isAuthenticated} />
<Redirect to={isAuthenticated ? '/Whatsapper' : '/login'} />
</Switch>
</div>
</div>
</BrowserRouter>
</div>
);
}
导航链接如下所示:
<ul>
{
departments.length > 0 ? departments.map((el, i) => (
<div className="departmentItem" key={i}>
<li className="departmentListItems"
>
<WorkIcon className="suiteCaseIcon"/>
<NavLink className="departmentListItemsLink" to={"/"+el._id+"/whatsapper"} >{el.departmentName || ''}</NavLink>
</li>
{/* <hr className="profilePageSentenceListHr" /> */}
</div>
)) : <p>not found</p>
}
</ul>
解决方案
react 中的这个问题通常发生在路径与组件没有关联(通常是拼写错误)时,因为路径由浏览器更改,组件由 react 更改。在这种情况下,这是罪魁祸首/Whatsapper
<Redirect to={isAuthenticated ? '/Whatsapper' : '/login'} />
PS:请为路径创建一个组件或使用关联的 id/Whatsapper
重定向到或完全删除。/:id/whatsapper
Redirect
推荐阅读
- ios - 如何从 iOS swift 中的照片库中获取最佳 OCR 文本结果?
- r - 如何在 geom_point 点图中仅显示前 10 个类别和值?
- google-compute-engine - 了解 Google Compute Engine 的实例/cpu/利用率
- python - 更改 Builder 方法
- javafx - How to display day from selected date using javafx?
- android - Error :- Android resource linking failed, how fix this?
- vim - 如何以不同于其内容的方式突出显示代码块的标签?
- python - 如何在 matplotlib 中操作 xticks 与数据框图相同
- rest - InfluxDB http calls sending credentials (username & password) in URL as query params
- reactjs - 无法使用 Redux,Sagas 访问第二个组件中的第一个组件状态