Jot*_*ota 0 javascript reactjs react-router react-router-dom
我正在做项目,我需要用React Router创建一些路由。我的项目是:

每个方块都有一个ID 200和201和,我要单击的每个转弯我都想走一条路线,例如:http://localhost:3000/user/200或http://localhost:3000/user/201何时走那条路线,我希望它出现在body "User 200"或处"User201",我阅读了文档但不理解。
我的APP.JS:
import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import './App.css';
import Home from './Home';
const App = () => (
<Router>
<Home/>
</Router>
);
export default App;Run Code Online (Sandbox Code Playgroud)
我的HOME.JS:
import React from 'react';
import Header from './Header';
import Body from './Body';
import './Home.css';
class Home extends React.Component {
render() {
return ( <
div className = 'home' >
<
Header / >
<
Body / >
<
/div>
)
}
}
export default Home;Run Code Online (Sandbox Code Playgroud)
我的BODY.JS:
import React from 'react';
import './Body.css';
import axios from 'axios';
import {
Link
} from "react-router-dom";
class Body extends React.Component {
constructor() {
super();
this.state = {
employee: [],
}
}
componentDidMount() {
axios.get('http://127.0.0.1:3004/employee').then(
response => this.setState({
employee: response.data
})
)
}
getName = () => {
const {
employee
} = this.state;
return employee.map(name => < Link className = 'link'
to = '/user' > < div key = {
name.id
}
className = 'item' > < img className = 'img'
src = {
`https://picsum.photos/${name.name}`
} > < /img> <h1 className='name'> {name.name} </h
1 > < /div> </Link > )
}
render() {
return ( <
div className = 'body' > {
this.getName()
} <
/div>
)
}
}
export default Body;Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
刚开始,您没有正确设置路由器
App.js
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
class App extends React.Component {
render () {
return (
<Router>
<Home>
<Switch>
<Route path='/user/:token' component={Body} />
</Switch>
</Home>
</Router>
)
}
}
Run Code Online (Sandbox Code Playgroud)
Home.js-现在您将路由器包装在儿童中
class Home extends React.Component {
render () {
return (<div className='home' >
<Header />
{this.props.children} {/* This line will render router children which will be Body */}
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
Body.js
现在您会收到体内的东西,this.props.match.params我想您会自己弄清楚的
| 归档时间: |
|
| 查看次数: |
5949 次 |
| 最近记录: |