React Router v4 参数

React Router v4 params

我正在学习使用 React Router v3 的 React 教程。当我使用 React Router v4 时。我将一个名为 id 的参数从一个名为 Root 的组件传递给另一个名为 User.

的组件
export class Root extends  React.Component {
    render() {
        return(
            <div className="container">
                <div className="row">
                    <div className="col-xs-10 col-xs-offset-1">
                        <Header />
                    </div>
                </div>
                <div className="row">
                    <div className="col-xs-10 col-xs-offset-1">
                        <hr/>
                        <Route exact path="/" component={Home}/>
                        <Route path="/user/:id" component={User}/>
                        <Route path="/home" component={Home}/>
                        {/*{this.props.children}*/}
                    </div>
                </div>
            </div>
        );
    }
}

我正在使用 {this.props.match.params.id} 获取参数,如下所示。

export class User extends React.Component {

    onNavigateHome() {
        this.props.history.push("/home")
    }

    render() {
        return (
            <div>
                <h3>The User Page</h3>
                <p>User ID: {this.props.match.params.id}</p>
                <button onClick={() => this.onNavigateHome()} className="btn btn-primary">Go home!</button>
            </div>
        );
    }
}

教程中使用了{this.props.params.id}。我使用 {this.props.match.params.id} 的方式是否正确? match 是什么意思?

匹配是 属性 当路由路径匹配时 react router v4 注入。

匹配对象具有以下属性:

  • url —当前位置路径名的匹配部分
  • path —— 路线的路径
  • isExact—路径===路径名
  • params — 一个包含路径名值的对象 由 path-to-regexp
  • 捕获

至于跟随 V3 教程和 V4 - 我不推荐它,因为两个版本之间有很大的变化