首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactJS -动态路由

ReactJS -动态路由
EN

Stack Overflow用户
提问于 2019-06-25 10:12:19
回答 1查看 44关注 0票数 0

我有这些部件。我想把每一个<House/>变成一个动态的url。例如,在浏览器中访问http://localhost:3000/houses/house/1时,我想要显示House 1。

应用程序中的其他东西运行良好。我只想解决这个实现动态路线的问题。

路由器组件

代码语言:javascript
复制
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>
)

豪斯组件

代码语言:javascript
复制
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

房屋组件

代码语言:javascript
复制
import React from 'react';

function House(prop) {
  return (
    <li><img src={`/images/${prop.photo}`}/></li>
  );
}

export default House;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-25 10:16:01

代码语言:javascript
复制
<Route exact path='/houses/:id' render={(props) => <House {...props} />} />

在House组件中检索id:

代码语言:javascript
复制
prop.match.params.id

参考文献:https://scotch.io/courses/using-react-router-4/route-params

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56751661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档