向下滚动当前代码&错误
//index.js
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';
import createBrowserHistory from 'history/createBrowserHistory'
import App from './components/App';
import About from './components/pages/about';
const customHistory = createBrowserHistory()
ReactDOM.render((
<Router history={customHistory}>
<Switch>
<Route path='/' component={App} />
<Route path='/about' component={About}/>
</Switch>
</Router>
), document.getElementById('root'))
这段代码单独工作并呈现我的'app'组件
但是当我试图在我的应用程序组件中添加一个“链接”组件时,它将无法识别它。
//App.js
import React from 'react';
import Header from './Header';
import { Link } from 'react-router-dom'
class App extends React.Component {
render() {
return (
<div className="App">
<Header className="Header" header="Header" />
<main className='main'>
<Link to='about'>About</Link>
</main>
</div>
);
}
}
export default App;
首先,您使用一个BrowserRouter,这个创建自己的历史对象并使用这个。因此,在您的情况下,不应该将历史对象传递给它。实际上,在我查看了BrowserRouter的代码之后,它甚至应该在控制台中打印一个警告。如果我是你,我会把它命名为BrowserRouter,这样可以减少出错的可能性,并且在阅读代码时更加清晰。
然后,在v4中,路由器只能有1个子路由器。但是在交换机的情况下,它实际上只挂载匹配的路由。我不确定它是否打算像这样,试着把你的hierchy改成不同的东西,并让路由器的孩子总是挂载。下面是您的代码示例:
//index.js
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter, Route, Switch} from 'react-router-dom';
import App from './components/App';
ReactDOM.render((
<BrowserRouter>
<App />
</BrowserRouter>
), document.getElementById('root'));
然后在应用程序中构建路由逻辑,这甚至更有意义,因为应用程序可能就是应用程序,因此它应该始终存在。
//App.js
import React from 'react';
import Header from './Header';
class App extends React.Component {
render() {
return (
<div className="App">
<Header className="Header" header="Header" />
<Switch>
<Route exact path='/' component={Home} />
<Route path='/about' component={About}/>
</Switch>
</div>
);
}
}
//Header.js
import React from 'react';
import {Link} from 'react-router-dom';
class Header extends React.Component {
render() {
return (
<header className="header">
<Link to='/'>Home</Link>
<Link to='/about'>About</Link>
</header >
);
}
}
我需要多个嵌套路由 我用的是react-router-dom的v4 我有我的 我需要组件渲染成这样 Home组件包含Page1、Page2和Page3组件共有的标题组件,但不存在于Login和About中。 我的js代码是这样读的 我希望登录组件只显示在 /login当我请求 /page1、 /page2、 /page3时,它们应该分别包含主页组件和该页面的内容。 取而代之的是呈现的登录组件,在该
我想把react-route添加到我的应用程序中,我有下面的代码: 更新:已安装react-router 3.0.2并工作。
路由器用于路由客户端应用程序并定义应用程序对象的URL表示。 当Web应用程序为应用程序中的重要位置提供可链接,可收藏且可共享的URL时,需要路由器。 下表列出了可用于操作BackboneJS - Router - S.No. 方法和描述 1 extend 它扩展了主干的路由器类。 2 routes 它定义了应用程序对象的URL表示。 3 initialize 它为路由器实例化创建了一个新的构造函
问题内容: 我一直在思考,我对客户端和服务器之间的路由感到困惑。假设我在将请求发送回Web浏览器之前使用ReactJS进行服务器端渲染,并使用react- router作为客户端路由在页面之间切换而不刷新为SPA。 我想到的是: 路线如何解释?例如,从首页()到帖子页面()的请求 路由在服务器端还是客户端去哪里? 它如何知道如何处理? 问题答案: 注意,此答案涵盖了React Router版本0.
我想到的是: 路线是如何解释的?例如,从主页()到帖子页()的请求 路由在服务器端还是客户端? 它如何知道它是如何处理的?
在 Blade 2.0.9 版本后加入了 RouteContext 这个类,作为路由的上下文操作。其本质是封装了 Request 和 Response,所以使用起来和它们的 API 是相同的,下面列举一下包含的方法列表。 请求相关 #request() #method() #uri() #keepAlive() #session() #isIE() #header(String headerNam