Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应路由器不显示';未找到';页_Reactjs_React Router_React Router Dom - Fatal编程技术网

Reactjs 反应路由器不显示';未找到';页

Reactjs 反应路由器不显示';未找到';页,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,我似乎无法让我的NotFound组件进行渲染。每当我在url中键入一些随机字符(例如:“localhost:3000/asdfasdfasdf”),浏览器实际上会指向我的主题组件,而不包含任何内容 以下是我如何设置路线的: import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; render(){ return ( <div className="App">

我似乎无法让我的NotFound组件进行渲染。每当我在url中键入一些随机字符(例如:“localhost:3000/asdfasdfasdf”),浏览器实际上会指向我的主题组件,而不包含任何内容

以下是我如何设置路线的:

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

render(){
  return (
    <div className="App">
      <Router>
        <NavBar />
        <Switch>
         <Route exact path='/' component={HomepageLayout} />  
         <Route exact path='/:topic' component={Topic} />  
         <Route path='*' component={NotFound} />
        </Switch>
      </Router>
    </div>
  );
 }

export default App;
从'react Router dom'导入{BrowserRouter as Router,Route,Switch};
render(){
返回(
);
}
导出默认应用程序;
正如一些人建议的那样,我也尝试过不指定路径,但这也不起作用:

<Route component={NotFound} />


有什么想法吗?

这不会像您在第二条路线中提到的那样起作用,因为任何值都可以作为/:topic保存,当您这样添加时,将显示此路线。因为,任何以冒号开头的段都将被视为参数。因此,*路线在任何情况下都不会显示

这不会像您在第二个路由中提到的那样起作用,因为任何值都可以作为/:topic保存,当您这样添加时,将显示此路由。因为,任何以冒号开头的段都将被视为参数。因此,*路线在任何情况下都不会显示

这回答了你的问题吗?添加complete代码app.js。我会将你的/:topic路由修改为/topic/:topic,然后它会按预期工作。谢谢,明白了。这回答了你的问题吗?添加complete代码app.js。我会将你的/:topic路由修改为/topic/:topic,然后它应该能正常工作。谢谢,明白了。