2016-06-01 2 views
2

https://github.com/reactjs/react-router/blob/cbdc49442aba5cc6f225ff5546ac5f4a217fa4ec/upgrade-guides/v2.4.0.md에있는 설명서를 따라했지만 새로운 withRouter higher order 구성 요소를 사용하여 this.props.router에 액세스하는 데 어려움을 겪고 있습니다.react-router --withRouter 결과가 this.props.router가 정의되지 않음

import React from 'react'; 
import {connect} from 'react-redux'; 
import {withRouter} from 'react-router'; 
import * as actionCreators from '../action_creators'; 

export const ComponentA = withRouter(React.createClass({ 
    componentDidMount() { 
    console.log(this.props.router); //returns undefined 
    }, 
    render() { 
    return (
     <div></div> 
    ); 
    } 
})); 

//map redux state to props 
function mapStateToProps(state) { 
    return { 
    views: state.main.get('views') 
    }; 
} 

export const ComponentAContainer = connect(
    mapStateToProps, 
    actionCreators 
)(ComponentA); 

불행히도 this.props.router는 항상 undefined를 반환합니다. 웬일인지 그것은 자산으로서 주입시키지 않는 것처럼 보인다.

addBranch: function() 
addProject: function() 
addView: function() 
castDeviceAvailable: function() 
castDeviceConnected: function() 
castDeviceDisconnected: function() 
castDeviceUnavailable: function() 
closeBurgerMenu: function() 
createProject: function() 
deleteBranch: function() 
deleteProject: function() 
deleteView: function() 
formValidation: function() 
getCastDeviceAuthToken: function() 
key: function(...) 
get key: function() 
loadView: function() 
navigateToSettings: function() 
newBuild: function() 
newBuildSummary: function() 
newCastDeviceAuthToken: function() 
openBurgerMenu: function() 
projectAdded: function() 
projectDeleted: function() 
projectUpdated: function() 
ref: function(...) 
get ref: function() 
router: undefined 
setBuildSummary: function() 
setLatestBuilds: function() 
setProjects: function() 
setState: function() 
setThemes: function() 
setViews: function() 
subscribeToView: function() 
toggleBurgerMenu: function() 
updateView: function() 
viewAdded: function() 
viewDeleted: function() 
viewUpdated: function() 
__proto__: Object 

어떤 생각 :

this.props은 다음과 같습니다?

답변

1

대신 connect을 랩핑 해 보셨습니까? 이처럼 ...

export const ComponentAContainer = withRouter(connect(
    mapStateToProps, 
    actionCreators 
)(ComponentA)); 

참고 : 그렇게함으로써 당신은 또한 당신의 클래스 정의에 withRouter 래퍼를 제거해야합니다.

관련 문제