reactjs - 将 props 传递给组件,React Router V4

标签 reactjs react-router react-props

我有一个带有此组件树的应用程序:

App
   Header
   Main
     Searcher
     List_of_albums
       Album

所以,我的想法是,在主页上有一个专辑搜索器,它会在搜索后显示专辑列表。为此,我在组件 Main 中读取 .json 文件,然后将 props 传递给 List_of_albums 和 Album。

到目前为止一切正常。

现在我想通过按钮访问新 route 每个专辑的信息:/id_of_the_album。

此按钮在组件相册中进行了本地化,如下所示:

let albumLink = `/${this.props.id}`
<Link to={albumLink}></Link>

为此,我在组件应用程序中尝试了以下操作:

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'

class App extends Component {
  constructor(){
  super()
  }

  render () {
   return (
     <Router>
      <Fragment>
       <Header />
        <Switch>
          <Route exact path='/' render={() => {
           return(
             <Main />
            )
          }} />

         <Route path='/:id_of_the_album' render={() => {
           return(
             <Profile />
           )
          }} />
          </Switch>
        </Fragment>
      </Router>
    )
  }
}

其中 Profile 是显示专辑详细信息的新组件。 在这个新组件中,我想使用如下内容打开各个专辑的 json:

import singlejson from '../data/""""herethe_id_of_the_album"""".json'

但是我如何将 id_of_the_album 传递到组件配置文件?

最佳答案

这样写:

<Route path='/:id_of_the_album' render={props => <Profile {...props} /> } />

现在在 Profile 组件中,它应该可以通过以下方式使用:

this.props.match.params.id_of_the_album

关于reactjs - 将 props 传递给组件,React Router V4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49084360/

相关文章:

javascript - 胜利: Animating Circular Progress Bar - not rendering chart

javascript - react 审核表单在提交时未提交审核

reactjs - 如何在 React js 中将 Base64 图像转换为 BLOB

javascript - React 中动态生成的按钮不会重新渲染

javascript - React Redux - 未捕获( promise )TypeError : Cannot read property 'props' of undefined

reactjs - 单击按钮将 Prop 传递给另一个组件

reactjs - Antd Forms,从自定义组件获取值?

reactjs - 用于经过身份验证的 React 组件和路由的更好模式

javascript - React-router不渲染组件

reactjs - React.HTMLProps<HTMLButtonElement> 破坏 defaultProps