2017-10-28 25 views
0

私は最初の実際の反応と還元アプリケーションで認証を取得しようとしていますが、ルートのアクセスと検証を管理していません。'オブジェクト'のプロパティはオブジェクトで定義されていません:React.PropTypes.object

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; 

そして、これは私が取得していますエラーです:私はここに私のルートでそれをインポートして呼び出しています

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); 
} 

:ここ

は、認可を検証するために私のコードです

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

それを試しましたが、そのような運はありません!試してくれてありがとう、私はそれを感謝します。 –

関連する問題