# ReactRouter问题
# 路由变了页面没变
错误的地方就在类似这样的代码
写法1
export default connect(mapStateToProp, mapDispatchToProp)(withRouter(AppContainer));
应该写成
写法2
export default withRouter(connect(mapStateToProp, mapDispatchToProp)(AppContainer));
原因 connect内是进行shallow comparison浅比较的。它重写了组件的shouldComponentUpdate方法
写法1中,connect重写了withRouter的shouldComponentUpdate方法,导致其不能够响应location的变化(仅仅响应mapStateToProps里面的变化)
写法2中,将withRouter提到外层,withRouter的shouldComponentUpdate不会被重写,就会响应location的变化