2017-12-21 13 views
1

ではありません、私は次のようにコンポーネントをレンダリングしようとPrivateRouteコンポーネントを持っていますこのような:(ルートによって作成された)Componentがinst.renderを与えるが、関数エラー

<PrivateRoute loggedIn={!!token} path="/user" component={User} />

タイトルに誤りがあります。私はどこに間違って行くことができるのだろうか?

ありがとうございます。

+0

どのようなエラーあなたはPropblemが解決 –

答えて

0

あなたがcomponentとしてPrivateRouteに渡されたコンポーネント解凍しています

const PrivateRoute = ({ component, loggedIn, ...rest }) => (
         // HERE^

をしかし、あなたはそれをレンダリングするためにreactから輸入されたComponentを(資本Cに注意してください)を使用します。

<Component {...props} /> 

そして、その輸入Componentは、任意のrenderメソッドを持っていません。したがって、あなたが得るエラー。あなたは、次のようなあなたのアンパックcomponentの名前を変更する必要があります修正するには

const PrivateRoute = ({ component: Comp, loggedIn, ...rest }) => (
           // HERE^
    <Route 
    {...rest} 
    render={props => 
     loggedIn ? (
     <Comp {...props} /> 
    // HERE^
    ) : (
     <Redirect 
      to={{ pathname: "/login", state: { from: props.location } }} 
     /> 
    ) 
    } 
    /> 
); 
+0

を受け取ります。ありがとうございました! – hxuanhung

関連する問題