我有两个组件 Car 和 CarDetails 我想用超链接/链接显示汽车组件中的所有汽车,当用户单击时,它应该将 carid(param(s)) 传递给 CarDetails 组件
应用程序.js
import React, { Component } from 'react';
import Cars from './components/Cars';
import CarDetails from './components/Car-details'
import {
BrowserRouter as Router,
Route,
Link
} from 'react-router-dom'
class App extends Component {
render() {
const data = [
{
id: 1,
name: 'Honda Accord Crosstour',
year: '2017',
model: 'Accord Crosstour',
make: 'Honda'
},
{
id: 2,
name: 'Mercedes-Benz AMG GT Coupe',
year: '2016',
model: 'AMG',
make: 'Mercedes Benz'
}
];
return (
<div className="App">
<hr/>
<Cars varCars={data}/>
</div>
);
}
}
export default App;
Cars.js 此组件在点击时显示所有带有超链接的汽车,将调用 carnama.js 显示该特定汽车的详细信息
import React, { Component } from 'react';
import {
BrowserRouter as Router,
Route,
Link
} from 'react-router-dom';
import Carnama from './Carnama'
class Cars extends Component {
constructor(props) {
super(props)
}
render(){
const cars = this.props.varCars;
const carNode = cars.map((car) => {
return (
<Router>
<div>
<Link
to={{ pathname: '/Carnama/'+car.id}}
className="list-group-item"
key={car.id}>
{car.name}
</Link>
<Route path="/Carnama:id" component={Carnama}/>
</div>
</Router>
)
});
return (
<div>
<h1>Cars page</h1>
<div className="list-group">
{carNode}
</div>
</div>
);
}
}
export default Cars;
Carnama.js 这个组件显示传入的参数 car.id
import React, { Component } from 'react';
class Carnama extends Component {
render() {
return (
<div>
<h1>Car Details</h1>
</div>
);
}
}
export default Carnama;
我已阅读并重新阅读以下 https://reacttraining.com/react-router/web/example/url-params https://jaketrent.com/post/access-route-params-react-router-v4/