我有这些部件。我想把每一个<House/>变成一个动态的url。例如,在浏览器中访问http://localhost:3000/houses/house/1时,我想要显示House 1。
应用程序中的其他东西运行良好。我只想解决这个实现动态路线的问题。
路由器组件
import React from 'react';
import { BrowserRouter as Router, Route, NavLink } from 'react-router-dom'
import App from './App'
import Houses from './Houses'
export default props => (
<Router>
<Route exact path='/' render={() => <App />} >
<Route exact path='/houses' render={() => <Houses />} />
</Route>
</Router>
)豪斯组件
import React, { Component } from 'react'
import House from './House'
var data = require('./db.json');
class Houses extends Component {
constructor(props) {
super(props);
this.state = {
currentHouse: []
};
}
componentDidMount() {
this.setState({
currentHouse: data[0]
})
}
render() {
const {currentHouse} = this.state;
return (
<div className="content house">
<ul>
{currentHouse.photos && currentHouse.photos.map((photo, index) => {
return(
<House photo={photo} key={index}/>
)
})}
</ul>
</div>
)
}
}
export default Houses房屋组件
import React from 'react';
function House(prop) {
return (
<li><img src={`/images/${prop.photo}`}/></li>
);
}
export default House;发布于 2019-06-25 10:16:01
<Route exact path='/houses/:id' render={(props) => <House {...props} />} />在House组件中检索id:
prop.match.params.id参考文献:https://scotch.io/courses/using-react-router-4/route-params
https://stackoverflow.com/questions/56751661
复制相似问题