Route changes should be treated like mouse clicks. And they should certainly be kept out of your views.
That's we created the Air Traffic Control routing library. Air Traffic Control matches route changes to Redux actions and vice versa. You can define your routes anywhere. And it works well with React, but you can use it with any framework.