2017-03-24 10 views
0

内のルーティングコンポーネントを反応させ、私はここで 明確に異なるルートに反応するコンポーネントを構築しましたが、私のスイッチコンポーネントスプリット2

function Switch() { 
    return (
    <Router history={hashHistory}> 
     <Route path="/" component={App}> 
     /* 
     ---- Routes on the Surveys List --------------------------- 
     */ 
     <Route path="/examples/surveyslist" component={SurveysList}> 

      <Route path="/examples/summary" component={Summary} /> 
      <Route path="/examples/survey" component={SurveyResult}> 
      <Route path="/examples/survey/resultview" component={ResultView} /> 
      <Route 
       path="/examples/survey/surveyproto" 
       component={SurveyProto} 
      /> 
      </Route> 
      <Route path="/examples/survey/edit" component={SurveyForm} /> 
     </Route> 
     /* ------------------- SurveysList ------------------------- */ 
     <Route path="/examples/employees" component={Employees} /> 
     </Route> 
    </Router> 
); 
} 

の源であるこれがうまく機能します!私がやりたい何 は可読性 を高めるために、コメント行の間のすべての部分を抽出することである私は同じのjsファイル内の関数は、スイッチコンポーネントの内部でそれを呼び出す追加作ってみましたが、それは私がSurveysSwitchコンポーネントを作ってみました を失敗しましたそれをエクスポート/インポートしても失敗しました。 任意の方法? PS:

function surveys() { 
    return (
     <Route path="/examples/surveyslist" component={ SurveysList }> 
      <Route path="/examples/summary" component={ Summary } /> 
      <Route path="/examples/survey" component={ SurveyResult }> 
       <Route path="/examples/survey/resultview" component={ ResultView } /> 
       <Route 
        path="/examples/survey/surveyproto" 
        component={ SurveyProto } 
       /> 
      </Route> 
      <Route path="/examples/survey/edit" component={ SurveyForm } /> 
     </Route> 
    ); 
} 

function routes() { 
    return (
     <Router history={ hashHistory }> 
      <Route path="/" component={ App }> 
       { this.surveys() } 
       <Route path="/examples/employees" component={ Employees } /> 
      </Route> 
     </Router> 
    ); 
} 

か、あなたがコンポーネント

class Surveys extends React.Component { 
    render() { 
     return (
      <Route path="/examples/surveyslist" component={ SurveysList }> 
       <Route path="/examples/summary" component={ Summary } /> 
       <Route path="/examples/survey" component={ SurveyResult }> 
        <Route path="/examples/survey/resultview" component={ ResultView } /> 
        <Route 
         path="/examples/survey/surveyproto" 
         component={ SurveyProto } 
        /> 
       </Route> 
       <Route path="/examples/survey/edit" component={ SurveyForm } /> 
      </Route> 
     ); 
    } 
} 

を好むならば、あなたが{ this.surveys() }に代わる:私は

+0

あなたがしようとしたコードが含まれるようにあなたの質問を編集してください。 –

答えて

0

をwebdevするために非常に初心者です、私はすべてを行う必要があると思います<Surveys />

+0

私はメッセージを取得する成分溶液で 2つの機能を備えたソリューションは、(調査によってthis.surveysを変更する)作品タイラー ありがとう「場所 『/例/ surveyslistは、』任意のルートと一致しませんでした」 – carella