CompanyDetailContainer
の経路と一致しない理由がわかりません。私が使用している経路が一致していません
:
"react-router": "^3.0.0",
"react-router-dom": "^4.2.2",
をインタビューコンテナのルートは
<IndexRoute component={HomePageContainer} />
<Route component={InterviewContainer} name="interview" path="interviews/companies/:companyId" />
<Route component={CompanyDetailContainer} name="companydetail" path="interviews/companies/:companyId/details" />
正常に動作しますので、http://localhost:8080/interviews/companies/10
はinterview
ルート罰金に当たるが、companydetail
ルート
UPDATEをhttp://localhost:8080/interviews/companies/501/details
ヒットしません。
オリジナルコード:
import { IndexRoute, Router, Route, browserHistory } from 'react-router';
<Router history={browserHistory} onUpdate={onUpdate}>
<Route path="/">
<IndexRoute component={HomePageContainer} />
<Switch>
<Route exact component={InterviewContainer} name="interview" path="interviews/companies/:companyId" />
<Route exact component={CompanyDetailContainer} name="companydetail" path="interviews/companies/:companyId/details" />
</Switch>
<Route component={About} name="about" path="about" />
<Route component={JobList} name="jobs" path="jobs" />
</Route>
<Route component={Container} path="/" />
<Route component={NotFound} path="*" />
</Router>
私は動作しませんでしたしていたものにだけ正確な追加:
import { IndexRoute, Router, Route, browserHistory } from 'react-router';
<Router history={browserHistory} onUpdate={onUpdate}>
<Route path="/" component={HomePageContainer}>
<Route component={InterviewContainer} exact name="interview" path="interviews/companies/:companyId" />
<Route component={CompanyDetailContainer} exact name="companydetail" path="interviews/companies/:companyId/details" />
<Route component={About} name="about" path="about" />
<Route component={JobList} name="jobs" path="jobs" />
<Route component={Container} path="/" />
<Route component={NotFound} path="*" />
</Route>
</Router>
その後、私はその周りにスイッチを追加しようとしました:
import { Router, Route, Switch, browserHistory } from 'react-router';
<Router history={browserHistory} onUpdate={onUpdate}>
<Switch>
<Route path="/" component={HomePageContainer}>
<Route component={InterviewContainer} exact name="interview" path="interviews/companies/:companyId" />
<Route component={CompanyDetailContainer} exact name="companydetail" path="interviews/companies/:companyId/details" />
<Route component={About} name="about" path="about" />
<Route component={JobList} name="jobs" path="jobs" />
<Route component={Container} path="/" />
<Route component={NotFound} path="*" />
</Route>
</Switch>
</Router>
そして今、私はこのエラーを取得する:Cannot read property 'createRouteFromReactElement' of undefined
。 Switch
のインポートが解決しないことに気付きましたが、それはSwitch
のインポート方法です。
これらのルートがすべてサブルート<Route path="/" component={HomePageContainer}>
である必要があるかどうかもわかりませんか?提案ごとに<IndexRoute />
も削除しました。
詳細ルートパスが評価される前に、面接ルートに「正確な」小道具を追加してください。それ以外の場合は常に最初に一致します。 –
v4より前のバージョンのRRを使用しているようです。特にReact Routerの場合はバージョンを指定してください。 – Dane
バージョン情報を見ると、異なるバージョンの 'react-router'と' react-router-dom'をインポートして間違っていると思います。このスレッドを参照してください:https://github.com/ReactTraining/react-router/issues/4648#issuecomment-284479720 **短い話ですが、 'react-router-dom'だけをインポートする必要があります。** – Dane