2017-12-12 16 views
1

Imこのようなエラーが表示されます。未知のエラー:ルート(...):何もレンダリングから返されませんでした。これは通常、return文がないことを意味します。リターンルータはレンダリングコンポーネントではなく、返信文がありません。

import React from 'react'; 
import {BrowserRouter, Switch, Route, ReactDom} from 'react-router-dom' 
import ProductsDisplay from './ProductsDisplay' 
import Home from './Home' 
import Contact from './Contact' 

const Main =() => { 
    return (
    <main> 

      <Switch> 
       <Route exact path="/" component={Home}/> 
       <Route exact path="/contact" component={Contact}/> 
       <Route exact path="/monitors" render={() => {<ProductsDisplay productCategory="monitors"/>}}/> 
       <Route exact path="/computers" render={() => {<ProductsDisplay productCategory="computers"/>}}/> 
      </Switch> 

    </main> 
    ); 
} 

export default Main; 

私はreturn文は、すべてのコンポーネントである確信して、任意のアイデアは、これができますか?

+1

あなたのコンポーネントが正しくインポートされていない場合に発生することがあります。 – Sulthan

答えて

3

render propに渡されたメソッドから何も返されません。この

<Route exact path="/monitors" render={() => <ProductsDisplay productCategory="monitors"/>}/> 
<Route exact path="/computers" render={() => <ProductsDisplay productCategory="computers"/>}/> 

よう{}括弧を削除してくださいまたはこの

<Route exact path="/monitors" render={() => {return <ProductsDisplay productCategory="monitors"/>}}/> 
<Route exact path="/computers" render={() => {return <ProductsDisplay productCategory="computers"/>}}/> 
+1

それはありがとう! RIYAJ KHANの答えもうまくいったが、私は1つの答えしか受け入れることができない;) – FailedUnitTest

2

Returnステートメントはproperty.YouがReact ComponentまたはReact elementを返す必要がレンダリングmonitorscomputersルートに欠けているように、そのメソッドにreturnを記述します。

<Switch> 
<Route exact path="/" component={Home}/> 
<Route exact path="/contact" component={Contact}/> 
<Route exact path="/monitors" render={() => {return <ProductsDisplay productCategory="monitors"/>}}/> 
<Route exact path="/computers" render={() => {return <ProductsDisplay productCategory="computers"/>}}/> 
</Switch> 

またはECMA6のデフォルトの戻り構文で

<Switch> 
<Route exact path="/" component={Home}/> 
<Route exact path="/contact" component={Contact}/> 
<Route exact path="/monitors" render={() => (<ProductsDisplay productCategory="monitors"/>)}/> 
<Route exact path="/computers" render={() => (<ProductsDisplay productCategory="computers"/>)}/> 
</Switch> 
+0

私はES6の部分が矢印関数(どちらの例でも使われている)だと思ったが、 '{'は暗黙の 'return' –

関連する問題