当前位置: 首页 > 知识库问答 >
问题:

React-Router的URL参数

羊毅庵
2023-03-14

//文章页面

const ArticlePage = ({ match }) => {
    const name = match.params.name;
    return (
    <>
        <h1>
            This is {name} Article
        </h1>
    </>
);
    }
export default ArticlePage;

//应用

import { BrowserRouter, Route, Routes } from 'react-router-dom';
import NavBar from "./NavBar";
import NotFound from "./pages/NotFound";
import ArticlePage from "./pages/ArticlePage";

function App () {
  return (
    <div className="App">
      <BrowserRouter>
        <NavBar />
        <Routes> 
          <Route exact path='/' element ={<HomePage />} />
          <Route path = '/topic' element = {<Topic />} />
          <Route path = '/about' element = {<AboutPage />} />
          <Route path = '/article/:name' element = {<ArticlePage />} /> 
          <Route path = '*' element = {<NotFound />} />
        </Routes>
      </BrowserRouter>
    </div>
   );
}

export default App;

//导航栏页面

import { Link } from 'react-router-dom';
import './NavBar.css';

const NavBar = () => (
    <nav>
        <ul>
            <li className='li'>
                <Link to ="/" className='link' > Home </Link>
            </li>
            <li className='li'>
                <Link to ="/about" className='link' > About </Link>
            </li>
            <li className='li'>
                <Link to = "/article" className='link'> Article </Link>
            </li>
            <li className='li'>
                <Link to = "/topic" className='link' > Topic </Link> 
            </li>
        </ul>
    </nav>
);

export default NavBar;

**我试图使用变量“name”传递URL参数,但当我访问ArticlePage时,我得到404:Not Found(我的NotFound页面的内容)。我试图使用ArticlePage中的props(match)获取“name”变量的值,但无法呈现它。反应相当新,任何提示或解决方案都将不胜感激。我正在使用React v6**

共有1个答案

裴鸿熙
2023-03-14

试试这个代码,它很管用

import { useParams } from 'react-router-dom';

const ArticlePage = () => {
   const params = useParams();
  return (
    <>
      <h1>
        This is {params.name} Article
      </h1>
    </>
  );
}
export default ArticlePage;
 类似资料:
  • 本文向大家介绍React-Router怎么获取URL的参数?相关面试题,主要包含被问及React-Router怎么获取URL的参数?时的应答技巧和注意事项,需要的朋友参考一下 在之前的版本中,可以通过 this.props.location.query.bar 进行获取 在 v4 中,通过 this.props.location.search 获取,不过需要进行处理

  • 我使用的是React路由器V4,我有此路由器的配置: 是可选的语言参数,它应该与模式匹配,例如、或不匹配。例如,应用程序利用这些路由: 另外,我还有一个额外的组件,在其中我定义了函数的路由: 因此,我希望实现的结果是,只接受允许的语言代码(和空参数),而不接受的代码将被重定向到组件。 可能吗?如何实现这一目标? 非常感谢这个例子

  • 这是一个快速的问题,但到目前为止我还没有找到解决方案: 我想访问URL参数与react-router v4使用渲染方法。到目前为止,我发现的一切只是像这样传递组件: <代码> 但是我想使用这样的渲染方法: <代码> 但是,当我尝试在我的组件中使用访问参数时,道具是未定义的。 你知道我如何使用渲染函数并仍然访问url参数吗?

  • 我正在使用react路由器,我想通过单击一行重定向到详细页面。 这是我的组件 单击url时,url将更改,但我的页面保持不变。我是这样定义路线的 我不知道为什么,这是工作在其他地方的应用程序。我也检查并尝试了这个线程 Browser History push无法导航到新页面 我错过什么了吗? 我的路由器看起来像 使用以下方法 是一个react组件,它将子级封装到一些组件中 如下所示 其中从“rea

  • 问题内容: 我使用React 15.0.2和React Router 2.4.0。我想将多个参数传递给我的路线,但我不确定如何以最佳方式做到这一点: 想要的是这样的: 问题答案: 正如@ alexander-t所提到的: 如果要将它们保留为可选: React Router v4与v1-v3不同,并且可选的路径参数未在文档中明确定义。 而是指示您定义path-to-regexp可以理解的路径参数。这