reactjs - React 路由器参数更改时强制重新安装组件?

标签 reactjs react-router

我编写了一个简单的应用程序,其中在组件的 componentDidMount 函数中获取远程资源。

我正在使用 React Router,当路由完全改变时,前一个组件会被卸载,然后安装新的组件。

问题是当用户停留在同一条路线上,但只更改了一些参数时。在这种情况下,仅更新该组件。这是默认行为。 但有时很难处理所有子组件的更新,以前只需要 componentDidMount...

当用户停留在同一路线上但某些参数发生变化时,是否有办法强制重新安装组件?

谢谢。

最佳答案

执行以下操作

路线应该是这样的。

<Route  path='/movie/:movieId'  component={Movie} /> 

当您转到/movie/:movieID

class Movie extends Component {

 loadAllData = (movieID) => {
    //if you load data 
    this.props.getMovieInfo(movieID);
    this.props.getMovie_YOUTUBE(movieID);
    this.props.getMovie_SIMILAR(movieID);
  }
  componentDidMount() {
    this.loadAllData(this.props.match.params.movieId);
  }
  componentWillReceiveProps(nextProps){
    if(nextProps.match.params.movieId !== this.props.match.params.movieId) {
      console.log(nextProps);
      this.loadAllData(nextProps.match.params.movieId);
    }
  }

  render(){
    return( ... stuff  and <Link to={`/movie/${id}`} key={index}>...</Link>)
  }
 } 

关于reactjs - React 路由器参数更改时强制重新安装组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48009825/

相关文章:

reactjs - 当 props 改变时,React 不会重新渲染组件

javascript - react js 和 redux 在每条路线之前发送一个 api 调用

javascript - React 不能正确重定向

reactjs - React Router V4 仅允许 URL 中的某些参数

javascript - 在我的案例中,如何使用 createSwitchNavigator 从注销导航到登录屏幕?

javascript - react JS : How to highlight partial data changes?

node.js - npm对等依赖性 react : can't install any packages

node.js - 从 Node.JS 服务器重定向到路由不会呈现下一页

javascript - ReactJS Router 不路由