我目前正面临一个奇怪的问题,即react-router提供的HOC withRouter不会将props传递给mapStateToProps函数.我在这做错了吗?
import React,{ Component } from 'react'; import { Link,withRouter } from 'react-router'; import { connect } from 'react-redux'; class ThisClass extends Component { render() { console.log(this.props.router); // Returns object with router keys (params,router,go,routes,...) // Render stuff } } const mapStateToProps = (state,props) => { console.log(state); // returns state of redux console.log(props); // returns empty object -> {},how come this is empty?! return { consultations: patientThisClassSelector(state,props) }; } export default connect(mapStateToProps)(withRouter(ThisClass));
在连接组件之前,必须注入路由器道具.
要实现这一点,你必须使用
export default withRouter(connect(mapStateToProps)(ThisClass));
代替
export default connect(mapStateToProps)(withRouter(ThisClass));