标签: react-router-dom

React:“重定向”未从“react-router-dom”导出

npm run start在终端中运行时出现以下错误。

尝试导入错误:“重定向”未从“react-router-dom”导出。

我已经重新安装了node_modules,,react-router-domreact-router还重新启动了终端和我的计算机,但问题仍然存在。

我的代码:

import React from 'react';
import { Switch, Redirect } from 'react-router-dom';

import { RouteWithLayout } from './components';
import { Minimal as MinimalLayout } from './layouts';

import {
  Login as LoginView,
  Dashboard as DashboardView,
  NotFound as NotFoundView
} from './views';

const Routes = () => {
  return (
    <Switch>
      <Redirect
        exact
        from="/"
        to="/dashboard"
      />
      <RouteWithLayout
        component={routeProps => <LoginView {...routeProps} data={data} />}
        exact
        layout={MinimalLayout}
        path="/login"
      />
      <Redirect to="/not-found" /> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router react-router-dom

255
推荐指数
11
解决办法
28万
查看次数

错误:[PrivateRoute] 不是 &lt;Route&gt; 组件。&lt;Routes&gt; 的所有子组件都必须是 &lt;Route&gt; 或 &lt;React.Fragment&gt;

我正在使用 React Router v6 并为我的应用程序创建私有路由。

在文件PrivateRoute.js中,我有代码

import React from 'react';
import {Route,Navigate} from "react-router-dom";
import {isauth}  from 'auth'

function PrivateRoute({ element, path }) {
  const authed = isauth() // isauth() returns true or false based on localStorage
  const ele = authed === true ? element : <Navigate to="/Home"  />;
  return <Route path={path} element={ele} />;
}

export default PrivateRoute
Run Code Online (Sandbox Code Playgroud)

在文件route.js中我写的是:

 ...
<PrivateRoute exact path="/" element={<Dashboard/>}/>
<Route exact path="/home" element={<Home/>}/>
Run Code Online (Sandbox Code Playgroud)

我已经完成了相同的示例React-router Auth 示例 - StackBlitz,文件 App.tsx

我有什么遗漏的吗?

javascript reactjs react-router-dom

207
推荐指数
5
解决办法
24万
查看次数

如何在 React Router v6 中重定向?

我正在尝试升级到 React Router v6 ( react-router-dom 6.0.1)。

\n

这是我更新的代码:

\n
import { BrowserRouter, Navigate, Route, Routes } from \'react-router-dom\';\n\n<BrowserRouter>\n  <Routes>\n    <Route path="/" element={<Home />} />\n    <Route path="/lab" element={<Lab />} />\n    <Route render={() => <Navigate to="/" />} />\n  </Routes>\n</BrowserRouter>\n
Run Code Online (Sandbox Code Playgroud)\n

最后Route是将其余路径重定向到/.

\n

但是,我收到了一个错误

\n
\n

TS2322:类型 \'{ 渲染:() => 元素;}\' 不可分配给类型“IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)\”。\xc2\xa0\xc2\xa0Property \'render\' 在类型 \'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)\' 上不存在。

\n
\n

然而,根据文档,它确实有renderfor Route. …

javascript reactjs react-router react-router-dom

201
推荐指数
7
解决办法
35万
查看次数

类型上不存在属性“exact”

我正在尝试在我的 React 应用程序中使用react-router-dom,并且我正在使用打字稿而不是 javascript。这里的问题是我无法将 Route 导入到我的组件中并使其工作。我已经安装了@types/react-router-dom,但由于某种原因它仍然无法按预期工作。

这是一个正在尝试使用的组件react-router-dom

import {BrowserRouter as Router, Route} from "react-router-dom";

const App = () => {
    return (
        <div>
            <Router>
                <div>
                    <Route path="/" exact/>
                </div>
            </Router>
        </div>
    )
}

export default App;
Run Code Online (Sandbox Code Playgroud)

这就是我收到的错误

TypeScript error in /Users/veselinkontic/Projects/givellet/frontend/src/components/index.tsx(9,37):
Type '{ path: string; exact: true; }' is not assignable to type 'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)'.
  Property 'exact' does not exist on type 'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)'.  TS2322 …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs react-router react-router-dom

130
推荐指数
3
解决办法
11万
查看次数

错误“错误:&lt;Route&gt; 只能用作 &lt;Routes&gt; 元素的子元素”

我第一次尝试使用路由并遵循Udemy的确切说明:

文件App.js

import { Route } from "react-router-dom";
import Welcome from "./Pages/Welcome";
import Game from "./Pages/Game";
import Leaderboard from "./Pages/Leaderboard";

function App() {
    return (
        <div>
            <Route path = "/welcome">
                <Welcome />
            </Route>
            <Route path = "/game">
                <Game />
            </Route>
            <Route path = "/leaderboard">
                <Leaderboard />
            </Route>
        </div>
    );
}

export default App;
Run Code Online (Sandbox Code Playgroud)

文件index.js

import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import App from "./App";

ReactDOM.render(
    <BrowserRouter>
        <App />
    </BrowserRouter>,
    document.getElementById('root')
); …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router-dom

116
推荐指数
8
解决办法
21万
查看次数

React Router V6 - 错误:useRoutes() 只能在 &lt;Router&gt; 组件的上下文中使用

我已经安装了react-router-domV6-beta。通过遵循网站上的示例,我可以使用新选项useRoutes设置页面路由并将其返回到App.js文件中。

保存后我收到以下错误:

错误:useRoutes() 只能在组件上下文中使用。

我想知道我是否在这里遗漏了一些东西?我已经在文件夹内创建了页面src/pages

我的代码:

import { BrowserRouter, Link, Outlet, useRoutes } from 'react-router-dom';

// Pages
import Home from './pages/Home';
import About from './pages/About';
import Services from './pages/Services';
import Gallery from './pages/Gallery';
import Prices from './pages/Prices';
import Contact from './pages/Contact';

const App = () => {
    const routes = useRoutes([
        { path: '/', element: <Home /> },
        { path: 'o-nama', element: <About /> },
        { path: 'usluge', element: <Services /> }, …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

108
推荐指数
6
解决办法
26万
查看次数

React-router v6:获取当前路由的路径模式

是否可以获得当前匹配路由的路径模式?例子:

<Route
    path=":state/:city*"
    element={
        <Page />
    }
/>
Run Code Online (Sandbox Code Playgroud)
<Route
    path=":state/:city*"
    element={
        <Page />
    }
/>
Run Code Online (Sandbox Code Playgroud)

我知道我可以用来useMatch检查当前位置是否与特定路径模式匹配,但组件必须知道路径模式是什么。

javascript reactjs react-router react-router-dom

100
推荐指数
5
解决办法
16万
查看次数

错误:useHref() 只能在 &lt;Router&gt; 组件的上下文中使用。当我直接将 url 设置为 localhost:3000/experiences 时它会起作用

我有一个导航栏,当路线单击时发生变化时,它会在每条路线中呈现。

./components/navbar.jsx

import React, { Component } from 'react';
import '../App.css';
import { Link } from 'react-router-dom';



class Navbar extends Component {
    constructor(props) {
        super(props);
        this.state = {};
    }
    render() {
        return (
            <div id = 'navbar'>

                <div className='name-head'>
                    My Name
                </div>
            
            
                <div id = 'nav-links-container'>
                    
                    <Link to='/experiences'>
                        <div className = 'nav-links'>
                            Experiences
                        </div>
                    </Link>

                    <div className = 'nav-links'>
                        Projects
                    </div>

                    <div className = 'nav-links'>
                        Skills
                    </div>

                    <div className = 'nav-links'>
                        Resume
                    </div>

                </div>
                
            </div>
        );
    }
}

export default …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

94
推荐指数
5
解决办法
13万
查看次数

React:<Route exact path ="/"/>和<Route path ="/"/>之间的差异

有人可以解释之间的区别

 <Route exact path="/" component={Home} />
Run Code Online (Sandbox Code Playgroud)

 <Route path="/" component={Home} />
Run Code Online (Sandbox Code Playgroud)

我不知道'确切'的含义

reactjs react-router react-router-dom

91
推荐指数
4
解决办法
5万
查看次数

react-router-dom v6 useNavigate 将值传递给另一个组件

React-router-dom 的版本是 v6,我在使用 Navigate 将值传递到另一个组件时遇到问题。

我想将选定的行传递到另一个名为“报告”的页面。但是,我不确定我是否使用了正确的navigate方法语法,并且我不知道如何在报告组件中获取该状态。

redirectToReport(rowData)Material-ui 表:我正在尝试在参数中使用onClick

function TableRows(props){
return (
    <MaterialTable
        title="Leads"
        columns={[
            ...
        ]}
        data = {props.leads}       
        options={{
            selection: true,
            filtering: true,
            sorting: true
        }}
        actions = {[{
            position: "toolbarOnSelect",
            tooltip: 'Generate a report based on selected leads.',
            icon: 'addchart',
            onClick: (event, rowData) => {
                console.log("Row Data: " , rowData)
                props.redirect(rowData)
            }
        }]}
    />
)}
Run Code Online (Sandbox Code Playgroud)

LeadTable 组件

export default function LeadTable(props) {
let navigate = useNavigate();

const [leads, setLeads] = useState([]);
const …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

88
推荐指数
2
解决办法
19万
查看次数