javascript - React Router - 无法在路由中使用 MATCH PARAMS 和应用程序状态

标签 javascript reactjs react-router

我正在 React 中构建一个设计作品集。投资组合数据处于应用程序状态。

var portfolioData = [
    {
      key: 1,
      projectName : "project one",
      tags: ["ux", "dev"],
      mdFileName: "p1.md"
    },{
      key: 2,
      projectName : "project two",
      tags: ["ux", "dev"],
      mdFileName: "p2.md"
    },{
      key: 3,
      projectName : "project three",
      tags: ["ux", "dev"],
      mdFileName: "p3.md"
    }
]

我正在使用 React Router 为每个项目创建一个 /project/:projectID 路由。将根据 URL 中的值使用该州的项目,例如 website.com/project/1

问题就在这里。如果我像这样配置路线...

<Route path="/project/:key" component={Project} />

console.log(this.props),props包括MATCH PARAMS(网址栏的值),但不包括应用程序状态。但如果我这样配置......

<Route path="/project/:key" render={()=><Project data={this.state.portfolioData}/>} />

Prop 包括应用程序状态,但不包括匹配参数。

有谁知道这个菜鸟做错了什么吗?

最佳答案

您忘记传递 Route 属性

<Route path="/project/:key" render={(props)=> <Project {...props} data={this.state.portfolioData}/>} />

关于javascript - React Router - 无法在路由中使用 MATCH PARAMS 和应用程序状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49585652/

相关文章:

javascript - 在第一次和第二次点击时更改 URL

javascript - componentWillRecieveProps 当前 props

javascript - 为什么我在 React 应用程序的 HTML 输出中看到传递的 Prop ?

javascript - 在 React JS 的 this.setState 回调中使用 this.setState?

reactjs - 在客户端和服务器端渲染不同的组件

javascript - react-router 1.0 : using this. props.children 而不是 RouteHandler

javascript - 如何引用javascript方法?

javascript - 无法在 JavaScript 中的 if 语句中返回值

javascript - 从通过 jQuery AJAX 调用的 Controller 返回 PDF

reactjs - React Router v4 路由器类型之间有什么区别?