Javascript 反应路由器不工作;索引路径
抱歉,如果这是一个重复的问题。我似乎无法解决这个问题或找到答案。我有一个基本的React路由器设置,我正在努力工作,我真的被困在IndexRoute到它的链接组件上。我觉得我错过了这个图书馆如何运作的要点,希望得到一些建议 提前谢谢 这是密码 App.jsJavascript 反应路由器不工作;索引路径,javascript,reactjs,react-router,Javascript,Reactjs,React Router,抱歉,如果这是一个重复的问题。我似乎无法解决这个问题或找到答案。我有一个基本的React路由器设置,我正在努力工作,我真的被困在IndexRoute到它的链接组件上。我觉得我错过了这个图书馆如何运作的要点,希望得到一些建议 提前谢谢 这是密码 App.js import React from 'react' import reactDOM from 'react-dom' import { Router, Route, hashHistory, IndexRoute } from 'react-
import React from 'react'
import reactDOM from 'react-dom'
import { Router, Route, hashHistory, IndexRoute } from 'react-router'
import About from "./About Us/About"
import FrontPage from "./Front Page/FrontPage"
import HeaderNavigation from './General/HeaderNavigation';
reactDOM.render((
<Router history = {hashHistory}>
<Route path="/" component={FrontPage}>
<IndexRoute component = {HeaderNavigation}/>
<Route path="/About" component={About}/>
</Route>
</Router>
), document.getElementById('app'));
HeaderNavigation.js
import React from 'react';
import { Nav, Navbar, NavDropdown, MenuItem, NavItem, Link } from 'react-bootstrap';
export default React.createClass ({
render() {
var Dlink = 'https://scontent-sjc2-1.xx.fbcdn.net/v/t1.0-9/12373357_497613000418878_5796459715901767943_n.png?oh=0484e476279b076d27eeeadc2d12b1d8&oe=590CD405'
return (
<Navbar>
<Navbar.Header>
<Navbar.Brand>
<img src= {Dlink} alt="Legalink" height="6000 px"/>
</Navbar.Brand>
</Navbar.Header>
<Nav bsStyle = "pills">
<NavItem eventKey = "{1}" disabled>Product</NavItem>
<NavItem eventKey = "{2}">Support</NavItem>
<NavDropdown title ="More" eventKey = "{3}">
<MenuItem eventKey = "{1}">Background</MenuItem>
<MenuItem eventKey = "{2}">Contact Us</MenuItem>
</NavDropdown>
</Nav>
</Navbar>
);
}
});
FrontPage.js
import React from 'react';
import Carousel from './Carousel';
import Body from './Body';
export default React.createClass({
render() {
return <div>
<Carousel/>,
<Body/>,
</div>
}
})
Body.js
import React from "react";
/* Styles */
import Button from 'react-bootstrap/lib/Button';
import Grid from 'react-bootstrap/lib/Grid';
import Jumbotron from 'react-bootstrap/lib/Jumbotron';
import Row from 'react-bootstrap/lib/Row';
import Col from 'react-bootstrap/lib/Col';
import typography from "../Assets/Typography"
export default React.createClass ( {
render() {
return (
<div>
<Jumbotron>
<Grid className = {typography}>
<h1>Tiger Jockey</h1>
<p>Bringing M&A to the Agile century</p>
</Grid>
</Jumbotron>
<Grid>
<Row>
<Col md={4}>
<h2 className = {typography}>Ride the Tiger</h2>
<p>Be the Jockey.</p>
<p><Button>View details »</Button></p>
</Col>
<Col md={4}>
<h2>Please your Customer</h2>
<p>Win more work</p>
<p><Button>View details »</Button></p>
</Col>
<Col md={4}>
<h2>Improve your process</h2>
<p>Make more money</p>
<p><Button>View details</Button></p>
</Col>
</Row>
</Grid>
</div>
);
}
});
Carousel.js
import React from 'react';
import {Carousel, CarouselItem, CarouselCaption, Image} from 'react-bootstrap';
export default React.createClass ( {
render() {
return (
<Carousel>
<CarouselItem>
<Image src = "https://d2myx53yhj7u4b.cloudfront.net/sites/default/files/Temp_SimpleKanbanBoard_PPT.jpg" responsive/>
<div className ="Carousel-Caption">
<h3>Uno</h3>
<p>Duos</p>
</div>
</CarouselItem>
<CarouselItem>
<Image height = {702} width = {2028} src = "http://assets.nydailynews.com/polopoly_fs/1.1709251.1393876942!/img/httpImage/image.jpg_gen/derivatives/article_750/nup-148281-1237-jpg.jpg"/>
<div className ="Carousel-Caption">
<h3> Here we go</h3>
<p>Lawyered</p>
</div>
</CarouselItem>
</Carousel>
);
}
});
您的FrontPage.js是主页面,而react router将所有其他组件作为子组件传递,因此您需要指定在FrontPage.js中呈现子组件的位置,您忘记添加这一行:
{this.props.children}
试试这个:
import React from 'react';
import Carousel from './Carousel';
import Body from './Body';
export default React.createClass({
render() {
return
<div>
<Carousel/>
<Body/>
{this.props.children}
</div>
}
})
这解决了我的问题,但让我意识到我必须绕过组件。{this.props.children}是如何工作的?我对这个功能很困惑,希望能扩展我的知识。非常感谢helpin评论,无法描述它的含义,就像,你的前端是所有组件的主页或包装器,所有其他组件将根据路由在其中呈现,它是一个主组件,所有其他组件都是它的子组件,indexroute是默认的子级。阅读以下内容:检查此项:标记ans正确,因为它解决了您的问题: