【发布时间】:2018-01-20 10:05:54
【问题描述】:
我已经阅读了所有相关条目。但是,我的问题仍然存在。 我有以下 App.js:
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import {NavLink} from 'react-router-dom';
import { BrowserRouter, Route } from 'react-router-dom';
import About_Screen from './screen/About_Screen.js';
class App extends Component {
constructor(props){
super(props)
this.state = {};
}
render(){
return(
<div className="app">
<main role="main">
<Jumbotron fluid>
<h1>Welcome</h1>
<NavLink to="/About_Screen">About</NavLink>
<Panel collapsible expanded={this.state.open}>
wes anderson
</Panel>
</Jumbotron>
<Grid>
<Row>
<Col xs={6} md={2}>
<Thumbnail src={require("./watch.png")}>
<h5>Thumbnail label</h5>
<Button onClick={ ()=> this.setState({ open: !this.state.open })}>
?
</Button>
<Panel collapsible expanded={this.state.open}>
Smart
</Panel>
<p>
<Checkbox inline></Checkbox>
</p>
</Thumbnail>
</Col>
....
)
}
}
ReactDOM.render(
<BrowserRouter>
<App>
<Route exact path="/" component={About_Screen}></Route>
<Route path="/About_Screen" component ={About_Screen}> </Route>
</App>
</BrowserRouter>,
document.getElementById('root')
);
我尝试通过 jumbotron 中的 NavLink 链接到我的 About_Screen.js。这也显示在 URL (http://localhost:8080 / About_Screen) 中。不幸的是,路由不起作用。 这是 About_Screen.js:
import React, {Component} from 'react'; 从'react-router'导入{Link};
class About_Screen extends React.Component{
render (){
return(
<div>
<h1>SCREEN 1 DATA</h1>
</div>
);
}
}
export default About_Screen;
我的错误在哪里?我链接路由错误吗? 我的数据结构如下:
- 应用程序
- 源
- App.js
- index.html
- 屏幕
- About_Screen.js
- 源
非常感谢您的帮助!
【问题讨论】:
-
你有
{ this.props.children },在你的App组件渲染方法中的任何地方吗? -
没有。我应该在哪里添加这个?
-
无论你想在哪里渲染你的
About_Screen -
当我进入 About_Screen 时,我想显示(或多或少)同一页面。所以应该渲染everythink。
-
您想在哪里查看更改?您的 App 类实际上正在渲染,并且您内部的某个地方(可能)想要渲染您的路由组件(
SCREEN 1 DATA),这就是您需要将{ this.props.children }放入其中的地方。
标签: javascript reactjs react-router