标签: react-router-dom

使用 React Router 6v 渲染具有不同样式的 React 组件(例如导航栏)的正确方法是什么?

我遇到以下问题。

设计简介包含 3 个不同的页面。2 的NavbarFooter具有相同的布局,但第三个页面的这些组件具有不同的样式。我使用的是最新的react-router-dom v6,它与旧版本相比发生了很大的变化。

所以我的目标是渲染没有页脚和导航栏的第三页,并使用新组件为其赋予自己的样式。尽管在我的 App.js 中,我为每个页面渲染了这 2 个组件,以使其更加高效并避免重复代码。

应用程序.js

import React from "react";
import { Routes, Route } from "react-router-dom";

import Navigation from "./Components/Navigation/Navigation.components";
import Footer from "./Components/Footer/Footer.components";

import HomePage from "./Pages/HomePage/Home.pages";
import Portfolio from "./Pages/PortfolioPage/Portfolio.pages";
import Contact from "./Pages/ContactPage/Contact.pages";

import './App.scss';

function App() {
  return (
    <div className="App">
      <Navigation />
      <Routes>
        <Route path="/" element={<HomePage />} />
        <Route path="portfolio" element={<Portfolio />} /> // this page needs different components
        <Route path="contact" element={<Contact …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

2
推荐指数
1
解决办法
1813
查看次数

React router dom 导航方法无法正常工作

嘿,我正在尝试构建一个具有导航功能的简单反应应用程序。主题是我有 3 个组件,App、Test 和 AppShell。应用程序组件是默认(初始)组件。我想要的是,每次用户进入 App 组件时,我的应用程序都会重定向到 Test 组件

我面临的问题是,我的重定向仅在我第一次加载应用程序时才起作用,之后我的重定向就不起作用了。

我将在下面分享我的三个组件代码以及索引页!

索引页

    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    import React from 'react';
    import ReactDOM from 'react-dom';
    import {
        BrowserRouter as Router,
        Routes,
        Route
    } from "react-router-dom";

    ReactDOM.render(
      <Router>
          <Routes>
              <Route path='/' element={<App />} />
              <Route path='/test' element={<Test />} />
          </Routes>
      </Router>,
      document.getElementById('root')
    );

    function Test() {
        return <h1>Test Me</h1>;
    }

    reportWebVitals();
Run Code Online (Sandbox Code Playgroud)

应用程序组件

import "./App.css";
import AppShell from "./components/core/appShell";
import { useNavigate } …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router-dom

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

使用react-router-dom在AWS s3上向React应用程序发出路径请求时出现404错误

我们有一个在 AWS S3 上托管/部署的 React 应用程序。它使用react-router-dom v6

配置

当出现错误时,我将其设置为转到index.html。问题是,在React中像“xxx/admin”这样移动时,s3中实际上只有index.html(xxx/admin不存在),导致404错误。之后,当发生错误时,是重定向到index.html,然后正确调用。

请告诉我如何消除这个错误。很难找到,因为这是我的第一个aws。


我认为在导入react.js包之前,首先进行xxx/main请求并将错误重定向到index.html。当重定向到index.html时,导入的js因此react将呈现正确的页面。如果是这样,我该如何解决这个问题?

或者

我认为这是SPA,所以只有一个index.html文件存在,但是当发生错误时,AWS s3调用了不存在的文件。我想知道根本的解决方案而不是使用cloudFront。(重定向错误 404 -> 200)。

404未找到错误

amazon-s3 react-router-dom

2
推荐指数
1
解决办法
3465
查看次数

在react-router-dom v6中使用&lt;Routes&gt;,&lt;Route&gt;和&lt;Navigate&gt;的问题

我对react-router-dom v6的使用变化感到非常困惑。根据他们的文档,我们可以简单地将 Route 组件传递到 element 属性中,但我收到此错误

Uncaught TypeError: meta.relativePath.startsWith is not a function
Run Code Online (Sandbox Code Playgroud)

我找不到任何解决方案。

import React from 'react';
import { Routes, Route, Navigate } from "react-router-dom";
import { Results } from './Results';

export const Catogories = () => {
    return (
        <div className='p-4'>
            <Routes>
                <Route exact path='/' element={<Navigate to='/search' />} />
                <Route exact path={["/search", '/images,', '/news', '/videos']} element={<Results />} />
            </Routes>
        </div>
    );
};
Run Code Online (Sandbox Code Playgroud)

reactjs react-router-dom

2
推荐指数
1
解决办法
3561
查看次数

React Router:如何修复 BrowserRouter 显示空白屏幕

我是 JS React 的新手,目前正在研究项目的路由部分。我正在尝试利用从react-router-dom包导入的BrowserRouter函数。但在发出npm start后,我​​得到的只是一个空白的白屏,如图 (2) 所示。如果我使用我在图像 (1) 上注释掉的代码直接调用我的 * LandingPage.js,它会输出图像 (3) 中所示的屏幕,这就是我尝试使用 BrowserRouter 输出的内容输出的内容。我错过了什么吗?

1.) 在此输入图像描述

2.)

在此输入图像描述

3.) 在此输入图像描述

javascript reactjs react-router react-router-dom

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

反应路由器错误pathname.match不是一个函数

我越来越

pathname.match 不是函数

当我使用matchPath时出错react-router

这是抛出异常的代码:

import { matchPath, useLocation } from "react-router";
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";

const MatcherControl = () => {
  const location = useLocation();
  const match = matchPath(location.pathname, {
    path: "/users/:id",
    exact: true,
    strict: false
  });
  return <div>{match ? "matches" : "not matches"}</div>;
};
Run Code Online (Sandbox Code Playgroud)

这是重现错误的最小示例沙箱。

reactjs react-router react-router-dom

2
推荐指数
1
解决办法
4754
查看次数

React 路由显示空白页面

我有一个问题,我是新手,我正在尝试使用 React Router,但每当我使用它时它都会显示一个空白页面这是我的代码:

    import React, {Component} from 'react';
import {BrowserRouter as Router, Route} from 'react-router-dom';
class TodoApp extends Component{
    render() {
      return (
        <div className="TodoApp">
            <Router>
                <>
                <Route path="/" element={<WelcomeComponent />} />
                </>
            </Router>
        </div>
      )
    } 
}


class WelcomeComponent extends Component{
    render()
    {
        return <div>
            abcd
        </div>
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我删除路线,而是编写其他内容,则代码可以正常工作,所以我知道路线有问题,但我不确定它是什么

routes reactjs react-router react-router-dom

2
推荐指数
1
解决办法
1162
查看次数

如何在反应中将主页的页眉和页脚与管理页面中的显示分开

function App() {
  return (
    <Router >
      <NavBar/>
        <Routes>
          <Route path="/" element={<HomePage />}/>
          <Route exact path="/about-us" element={<About />} />
          <Route exact path="/admin" element = {<Admin/>}/>
        </Routes>
      <Footer/>
    </Router>
  );
}

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

如何在反应中将主页的页眉和页脚与管理页面中的显示分开?

reactjs react-router-dom

2
推荐指数
1
解决办法
7094
查看次数

React-router-dom v6 路由显示空白页面

我将一个页面路由到根目录,但无论我使用什么 js 文件,它都显示为空白页面。不知道出了什么问题,从去年开始就没有使用过 React,但看起来他们已经更新了 React-router-dom,所以它不再使用 Switch。有人知道正确的语法以便页面显示吗?以下是文件:

WebRoutes.js

import React from "react";
import { Routes, Route } from 'react-router-dom';
import { useNavigate } from "react-router-dom";

// Webpages
import App from './App';
import Welcome from './welcome';
import SignUp from './Signup'

export default function WebRoutes() {
  return (
    <Routes>
      <Route path='/'>
       <Welcome />
      </Route>
    </Routes>
  );
}
Run Code Online (Sandbox Code Playgroud)

索引.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import WebRoutes from './WebRoutes';
import reportWebVitals from './reportWebVitals';

ReactDOM.render(
  <React.StrictMode>
    <WebRoutes />
  </React.StrictMode>,
  document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router-dom

2
推荐指数
1
解决办法
2606
查看次数

React Router V6 NavLink 不显示活动状态

尝试用 NavLink 和 React-router 替换一些旧方法,但我的代码似乎不起作用

   return (
      <div className='Selection-container'>
      <div className="Selections">
      <NavLink to="/best">
       <button  className='Best' value='best' onClick={handleSelection}>Best</button>
       </NavLink>
      <NavLink to="/hot" >
       <button  className='Hot' value='top' onClick={handleSelection}>Hot</button>
       </NavLink>
      <NavLink to="/new" >
       <button   className='New' value='new' onClick={handleSelection}>New</button>
       </NavLink>
      </div>
        {loading && <div className='Loading-main' ><img src={loadingImg} alt='loading' className='Main-loading' /></div>}
     
      <Routes>
        <Route path='/best' element={<PostMain />} />
        <Route path='/hot' element={<PostMain />} />
        <Route path='/new'  element={<PostMain />}/>
      </Routes>
      </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试在按钮内呈现不同类型的帖子,它们似乎可以工作,它们会更改页面中的内容,更改浏览器中的路线,只是当我在最热门或新页面上时,“活动”按钮不活动(最后我想在 css 中显示活动:非活动图像作为背景,但现在我会选择显示当前活动页面的任何内容)。

jsx reactjs react-router-dom

2
推荐指数
1
解决办法
8274
查看次数