75得票6回答
升级react-router-dom版本4后使用useParams()时出现TypeScript错误,类型“{}”上不存在属性“sumParams”。

升级到 TypeScript 4 版本后,在 react-router-dom 中使用 useParams() 时出现了一个 TypeScript 错误。 "typescript": "^4.0.2"import { useParams } from '...

73得票10回答
如何在react-router v4中解析查询字符串

在react-router v3中,我可以通过props.location.query.foo访问它(如果当前位置为?foo=bar)。 在react-router-dom@4.0.0中,props.location只有props.location.search,它是一个类似于?foo=ba...

71得票7回答
Reactjs中简单条件路由

如何实现条件路由,即只有在某些条件满足时,才会进行路由。 例如,只有当用户输入正确的凭据时,登录才应该成功,并且用户应该能够看到欢迎页面。 如果直接访问某个URL,例如 localhost:8080/welcome,不应该导航到欢迎页面。欢迎页面应该只在登录后显示。 如何实现这一点,有人可以帮...

68得票8回答
useNavigate() 只能在 <Router> 组件的上下文中使用。

请看下面的代码。我正在尝试使用react-router-dom添加一个返回前一页的按钮,但是我遇到了以下错误,并且网站上的所有组件也消失了。 错误: useNavigate()只能在组件的上下文中使用 我的代码: function App() { const navigate ...

66得票3回答
BrowserRouter和使用history.push()的Router有什么区别?

我正在尝试理解react-router-dom(v5)包中的BrowserRouter和Router之间的区别,以及它对下面的示例有何影响。 文档说: BrowserRouter 使用HTML5历史API(pushState、replaceState和popstate事件)来使你的UI与...

65得票7回答
React包装器:React无法识别DOM元素上的`staticContext`属性。

我正在尝试创建一个包装组件,围绕着 react-router-dom 的 NavLink 组件。 我希望我的自定义组件能够接受 NavLink 的所有 props,并将它们代理到 NavLink 上。 然而当我这样做时,我遇到了以下问题: 警告:React 不认识 DOM 元素上的...

65得票7回答
未捕获的类型错误:无法读取未定义属性的“push”(React-Router-Dom)

我有一个旋转幻灯片的仪表盘,每个幻灯片都在Bldgs中有对应的选项卡。 Dashboard.js 和 Bldgs.js 都是我的 App.js 的子组件。 当用户点击 Dashboard.js 中的特定幻灯片 A 时,Dashboard 需要告诉 App.js,以便在路由到 Bldgs 时,...

63得票12回答
如何使用TypeScript和React-Router 4、5或6重写受保护/私有路由?

我正在尝试按照react-router文档中描述的方式,使用TypeScript创建一个&lt;PrivateRoute&gt;。有人能帮我吗? react-router文档中的PrivateRoute:const PrivateRoute = ({ component: Component,...

62得票7回答
无法读取未定义的属性'history'(使用React Router 5的useHistory钩子)

我正在使用React Router的新useHistory hook,它是几周前推出的。我的React-router版本为5.1.2,我的React版本为16.10.1。你可以在底部找到我的代码。 然而,当我从react-router中导入新的useHistory时,我会遇到以下错误: U...

61得票17回答
使用React Router v6实现受保护的路由

在 React Router 新版本 6 中编写 ProtectedRoute 的正确方式是什么? 我写了这个,但它不是一条路由。const PrivateRoute = ({ component: Component, ...props }) =&gt; { if (!Compon...