为什么状态在通过 React Router Link 组件时未定义?

Liv*_*tan 10 javascript reactjs

我正在尝试通过 React Router Link 组件传递道具,但状态仍未定义,有人知道为什么吗?

路线:

<Route path="/movie" component={Movie} render={props => 
<Movie {...props} />} />
Run Code Online (Sandbox Code Playgroud)

链接:

<Link to={{ pathname: '/movie', state: { fromMovieList: true}}} > 
Title </Link>
Run Code Online (Sandbox Code Playgroud)

从路径“/movie”渲染的组件

class Movie extends React.Component {

  render () {
    console.log(this.props.location.state); // undefined
    return (
      <div> Hello </div>
        )
      }
    }

export default Movie;
Run Code Online (Sandbox Code Playgroud)

Joã*_*nha 10

您必须使用withRouter包装Movie组件;

您可以通过 withRouter 高阶组件访问历史对象的属性和最近的 Route 匹配项。withRouter 将在渲染时将更新的匹配、位置和历史道具传递给包装的组件。

export default withRouter(Movie);
Run Code Online (Sandbox Code Playgroud)