从 App.js 导航到 Places.js
Navigating from App.js to Places.js
我是 React.I 的新手,正在玩 bit.Now 我想从 App.js 导航到 Places.js。我同意它可以使用 React-router 完成,但我还无法成功解决这个问题。我在这方面需要帮助 regard.Having 说这个我尝试了几种使用 HashRouter、Route 和 Navlink 的组合,但所有的努力都是徒劳的。
这是我的 App.js
import {Link,Router} from 'react-router-dom';
import Places from './Places';
import React, { Component } from "react";
import { Card} from 'semantic-ui-react';
class App extends Component {
render() {
return (
<Router>
<div className ="ui four stackable two column grid">
<div className="column">
<Card
as = {Link} to = '/Places'
header='Places'
description='Click here to get list of places.'
/>
</div>
...
</div>
</Router>
);
}
}
这是我的 Places.js
import { Card} from 'semantic-ui-react';
import axios from 'axios';
export default class Places extends React.Component {
...
基本上我有App.js和4个UIcards.When我每点击一个应该加载对应js的内容files.Will这算不算SPA?
定义您的路线。您必须先导入 react-router
.
在您的文件app.js中,您必须将内容剪切到另一个文件中(例如grid.js)。 'App' 将是您应用程序的主要容器
然后您将创建一个文件 routes.js 并描述您的路线:
import React from 'react';
import { Route, IndexRoute } from 'react-router';
import App from './components/app';
import Grid from './components/Grid';
import Places from './components/Places';
export default (
<Route path="/" component={App}>
<IndexRoute component={Grid} />
<Route path="places" component={Places} />
</Route>
);
在这里,使用 IndexRoute
,你说你的默认路由将加载 'Grid' 所以卡片列表。
然后,在 app.js 文件中,您在要显示元素 'Grid' 和 'Places'.
的渲染函数 {this.props.children}
中写入
最后,在您的文件 'index.js' 中,您将导入路由和路由器:
import { Router, browserHistory } from 'react-router';
import routes from './routes';
并且,在函数 ReactDOM.render
中定义您的路线:
ReactDOM.render(
<Router history={browserHistory} routes={routes} />
, document.querySelector('.container'));
您可以通过将路由保存在单独的文件中来处理路由,并从那里处理组件渲染。
import React from 'react';
import { Router, Route, IndexRoute, browserHistory } from 'react-router';
import {render} from 'react-dom';
import Places from '../Places.js';
render(
<Router history={browserHistory}>
<Route path='/' component={App}>
<Route path='/Places' component={Places}></Route>
</Route>
</Router>, document.getElementById('app')
);
当您导航到“/Places”路由时,它将呈现 Places 组件。
我是 React.I 的新手,正在玩 bit.Now 我想从 App.js 导航到 Places.js。我同意它可以使用 React-router 完成,但我还无法成功解决这个问题。我在这方面需要帮助 regard.Having 说这个我尝试了几种使用 HashRouter、Route 和 Navlink 的组合,但所有的努力都是徒劳的。
这是我的 App.js
import {Link,Router} from 'react-router-dom';
import Places from './Places';
import React, { Component } from "react";
import { Card} from 'semantic-ui-react';
class App extends Component {
render() {
return (
<Router>
<div className ="ui four stackable two column grid">
<div className="column">
<Card
as = {Link} to = '/Places'
header='Places'
description='Click here to get list of places.'
/>
</div>
...
</div>
</Router>
);
}
}
这是我的 Places.js
import { Card} from 'semantic-ui-react';
import axios from 'axios';
export default class Places extends React.Component {
...
基本上我有App.js和4个UIcards.When我每点击一个应该加载对应js的内容files.Will这算不算SPA?
定义您的路线。您必须先导入 react-router
.
在您的文件app.js中,您必须将内容剪切到另一个文件中(例如grid.js)。 'App' 将是您应用程序的主要容器 然后您将创建一个文件 routes.js 并描述您的路线:
import React from 'react';
import { Route, IndexRoute } from 'react-router';
import App from './components/app';
import Grid from './components/Grid';
import Places from './components/Places';
export default (
<Route path="/" component={App}>
<IndexRoute component={Grid} />
<Route path="places" component={Places} />
</Route>
);
在这里,使用 IndexRoute
,你说你的默认路由将加载 'Grid' 所以卡片列表。
然后,在 app.js 文件中,您在要显示元素 'Grid' 和 'Places'.
的渲染函数{this.props.children}
中写入
最后,在您的文件 'index.js' 中,您将导入路由和路由器:
import { Router, browserHistory } from 'react-router';
import routes from './routes';
并且,在函数 ReactDOM.render
中定义您的路线:
ReactDOM.render(
<Router history={browserHistory} routes={routes} />
, document.querySelector('.container'));
您可以通过将路由保存在单独的文件中来处理路由,并从那里处理组件渲染。
import React from 'react';
import { Router, Route, IndexRoute, browserHistory } from 'react-router';
import {render} from 'react-dom';
import Places from '../Places.js';
render(
<Router history={browserHistory}>
<Route path='/' component={App}>
<Route path='/Places' component={Places}></Route>
</Route>
</Router>, document.getElementById('app')
);
当您导航到“/Places”路由时,它将呈现 Places 组件。