2017-10-28 1 views
0

첫 번째 실제 반응 및 감면 앱에서 인증을 실행하려고하지만 경로 액세스 및 확인을 관리하는 데 어려움이 있습니다.'object'속성이 object로 정의되지 않았습니다. React.PropTypes.object

export default function(ComposedComponent) { 
    class Authentication extends Component { 
    static contextTypes = { 
     router: React.PropTypes.object 
    } 

    componentWillMount() { 
     if (!this.props.authenticated) { 
     this.context.router.push('/'); 
     } 
    } 

    componentWillUpdate(nextProps) { 
     if (!nextProps.authenticated) { 
     this.context.router.push('/'); 
     } 
    } 

    render() { 
     return <ComposedComponent {...this.props} /> 
    } 
    } 

    function mapStateToProps(state) { 
    return { authenticated: state.auth.authenticated }; 
    } 

    return connect(mapStateToProps)(Authentication); 
} 

내가 가져오고 여기 내 노선에 그것을 호출 오전 : 여기

권한 부여 확인하려면 코드입니다

class App extends Component { 
    render() { 
    return (
     <Router history={history}> 
      <Layout> 
      <Route path='/' exact component={Home} /> 
      <Route path='/signin' component={SignIn} /> 
      <Route path='/signout' component={SignOut} /> 
      <Route path='/brain' component={RequireAuth(Brain)} /> 
      </Layout> 
     </Router> 
    ); 
    } 
} 

export default App; 

을 그리고 이것은 내가 점점 오전 오류입니다 :

TypeError: Cannot read property 'object' of undefined 
./src/components/auth/RequireAuth.js.__webpack_exports__.a 
src/components/auth/RequireAuth.js:7 
    4 | export default function(ComposedComponent) { 
    5 | class Authentication extends Component { 
    6 |  static contextTypes = { 
> 7 |  router: React.PropTypes.object 
    8 |  } 
    9 | 
    10 |  componentWillMount() { 
View compiled 

어떤 방향으로도 제공해 주셔서 감사합니다.

+0

어떤 버전의 React를 실행하고 있습니까? 'React.PropTypes'는 v15.5부터 사용되지 않습니다. 이제는 자체 PropTypes 모듈 (https://www.npmjs.com/package/prop-types)입니다. 당신은 아마도 그것을 가져 와서 단지'PropTypes.object'를 사용해야합니다. – SamVK

+0

이 문제가 해결되었습니다. 대단히 감사합니다. 예, 최신 버전의 React를 사용하고 다소 날짜가있는 자습서를 사용하고 있기 때문에 문제는 아니라고 생각했지만 검색 할 때 아무 것도 찾을 수 없었습니다. 다시 한 번 감사드립니다! –

답변

0

시도해 볼 수 있습니까? 도움이 되었으면 좋겠어요

static contextTypes = { 
    router: React.PropTypes.func 
} 
+0

시도해 보니 그런 행운은 없었습니다! 시도해 줘서 고마워, 고마워. –