Metuuu
3/1/2018 - 11:10 AM

React Router route change listener

import React, { Component } from 'react';
import { withRouter } from 'react-router-dom';

class RouteChangeListener extends Component {

   constructor(props) {
      super(props);
   }

   componentDidUpdate(prevProps) {
      if (this.props.location.pathname !== prevProps.location.pathname) {
         this.props.onRouteChanged(prevProps.location, this.props.location);
      }
   }

   render() {
      return null;
   }

}

RouteChangeListener.propTypes = {
	location: React.PropTypes.object.isRequired,
	onRouteChanged: React.PropTypes.func.isRequired
}

export default withRouter(RouteChangeListener);