我遇到以下问题。
设计简介包含 3 个不同的页面。2 的Navbar和Footer具有相同的布局,但第三个页面的这些组件具有不同的样式。我使用的是最新的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) 嘿,我正在尝试构建一个具有导航功能的简单反应应用程序。主题是我有 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) 我们有一个在 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)。
我对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) 我是 JS React 的新手,目前正在研究项目的路由部分。我正在尝试利用从react-router-dom包导入的BrowserRouter函数。但在发出npm start后,我得到的只是一个空白的白屏,如图 (2) 所示。如果我使用我在图像 (1) 上注释掉的代码直接调用我的 * LandingPage.js,它会输出图像 (3) 中所示的屏幕,这就是我尝试使用 BrowserRouter 输出的内容输出的内容。我错过了什么吗?
2.)
我越来越
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)
这是重现错误的最小示例沙箱。
我有一个问题,我是新手,我正在尝试使用 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)
如果我删除路线,而是编写其他内容,则代码可以正常工作,所以我知道路线有问题,但我不确定它是什么
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)
如何在反应中将主页的页眉和页脚与管理页面中的显示分开?
我将一个页面路由到根目录,但无论我使用什么 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) 尝试用 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 中显示活动:非活动图像作为背景,但现在我会选择显示当前活动页面的任何内容)。