如何将特定ID传递到路线的路径?

时间:2018-12-24 20:55:00

标签: reactjs react-redux react-router-v4

我正在向Redux商店发送操作,并尝试从商店获取电影ID,但Movie组件无法渲染。我认为这样做是错误的方法。将电影ID传递到路线路径的正确方法是什么?

主要组成部分

render() {
return (
    <BrowserRouter>
        <div>
            <Route exact path="/" component={PopularList} />
            <Route path={`/${this.props.movieId`} component={Movie} /> 
        </div>
    </BrowserRouter>
)

}

我要从中获取链接的

组件 链接到= {{/${movie.id}}

render(){
if (this.props.popularMovies.length) {
        return (
            <section className={"movies"}>
                <h3>Popular Movies</h3>
                <h4>{this.props.popularMovies.length}</h4>
                <div className={"movies__block"}>
                    {
                        this.props.popularMovies.map((movie) => {
                            return (
                                <Link to={`/${movie.id}`} component={Movie} key={movie.id} onClick={() => {this.getMovieId(movie.id)}}>
                                    <div className={"movie-card"}>
                                        <div>{movie.title}</div>
                                        <img src={`${this.dbLink}${movie.poster_path}`}></img>
                                    </div>
                                </Link>
                            )
                        })
                    }
                </div>
            </section>
        )
    }
}

1 个答案:

答案 0 :(得分:1)

如果要传递参数,则可以使用如下链接:

<Route path='/route/:id' exact component={MyComponent} />

,然后在MyComponent中,您可以使用:

const { id } = props.match.params;

否则,您可以通过:

<Link to={{ pathname: '/route', state: { foo: 'bar'} }}>My route</Link>

然后通过以下方式访问它:

const { foo } = props.location.state;