2017-06-22 24 views
0

私のコードはコンパイルされ実行されていますが、動作していません。私は何が間違っているのか分かりません。以下のコードサンプルは、それぞれのファイルから抜粋したものです。Typescript React ReactルータV4はルーティングされません

package.json

"dependencies": { 
"@types/react": "^15.0.28", 
"@types/react-dom": "^15.5.0", 
"@types/react-router": "^4.0.11", 
"react": "^15.6.1", 
"react-dom": "^15.6.1", 
"react-router": "^4.1.1", 
"typescript": "^2.3.4" 
}, 

index.tsx

import * as React from 'react'; 
import * as ReactDOM from 'react-dom'; 
import App from './App'; 
import Bids from './Bids'; 
import { MemoryRouter, Route, Switch} from 'react-router'; 

ReactDOM.render(
    <MemoryRouter> 
    <Switch> 
     <Route exact path="/bids" component={() => <Bids />} /> 
     <Route exact path="/" component={() => <App />} /> 
    </Switch> 
    </MemoryRouter> 
, 
    document.getElementById('root') as HTMLElement 
); 

と入札とアプリケーションの両方の単純な "Hello World" のレンダリング機能

class App extends React.Component<{}, null> { 
    render() { 

問題とコンポーネントを反応させています私は、デフォルト以外のパスをレンダリングするプログラムを手に入れることができないということを持っています。

http://localhost:3000/」に移動すると、私はAppコンポーネントを取得します。
"http://localhost:3000/bids"に移動すると、私はAppコンポーネントを取得します。
"http://localhost:3000/randomString"に移動すると、私はAppコンポーネントを取得します。

コードに「/ bids」が表示され、「/」が「入札」を指している)コードを切り替えると、入札単価コンポーネントはどのパスでも表示されます。

どのような考えですか?

+0

あなたは '/'まず、その後、 '/ bids'を入れてみましたがありますか? – Li357

+0

はい。動作をまったく変更しません。 –

+1

なぜ 'MemoryRouter'ですか?ドキュメントからは、[アドレスバーの読み書きはできません](https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/MemoryRouter.md )。 –

答えて

0

コメント(JesseとAlex)のおかげで答えがまとまった。 react-router-domとBrowserRouterに切り替えて問題を解決しました。

"@types/react": "^15.0.28", 
"@types/react-dom": "^15.5.0", 
"@types/react-router-dom": "^4.0.4", 
"react": "^15.6.1", 
"react-dom": "^15.6.1", 
"react-router-dom": "^4.1.1", 
"typescript": "^2.3.4" 

import * as React from 'react'; 
import * as ReactDOM from 'react-dom'; 
import App from './App'; 
import Bids from './Bids'; 
import {BrowserRouter, Route, Switch} from 'react-router-dom'; 

ReactDOM.render(
    <BrowserRouter> 
    <Switch> 
     <Route exact path="/bids" component={() => <Bids />} /> 
     <Route exact path="/" component={() => <App />} /> 
    </Switch> 
    </BrowserRouter> 
, 
    document.getElementById('root') as HTMLElement 
); 
関連する問題