2017-09-04 32 views
0

私はTSに基づいて簡単な反応プロジェクトを持ち、webpackを使用しています。私の問題は、ルータは大丈夫です、すべてが正しくリダイレ​​クトされ、正常に動作しますが、私はページをリフレッシュするときにエラーが発生しないということです。反応ルータDomとTypescriptはGETできません

index.tsx

ReactDOM.render(
<div> 
    <Router> 
    <div className="App"> 
     <Route exact path='/' component={Lessons}/> 
     <Route path='/watch/:name' component={CurrentLesson}/>  
    </div> 
    </Router> 
</div>, 
document.getElementById("example")); 

webpack.config.js

module.exports = { 
entry: "./src/index.tsx", 
output: { 
    filename: "bundle.js", 
    path: __dirname + "/dist", 
    publicPath: '/' 
}, 

plugins: [ 
    new webpack.HotModuleReplacementPlugin() 
], 

devtool: "source-map", 

resolve: { 
    extensions: [".ts", ".tsx", ".js", ".json"] 
}, 

module: { 
    loaders: [ 
     { 
      test: /\.tsx?$/, 
      loader: "awesome-typescript-loader" 
     } 
     ] 
}, 

externals: { 
    "react": "React", 
    "react-dom": "ReactDOM" 
}, 

devServer: { 
    historyApiFallback: true, 
    hot: true 
}}; 

私はそれが歴史に問題があるかもしれ読まなく、WebPACKのための推奨事項はoutput.PublicPathとdevServerを入れていました.historyApiFallbackと反応ルータのための歴史オブジェクトを渡すが、私は反応ルータのDOMを使用して以来、それはすでに歴史オブジェクトを持っていると私は純粋なES6で全く同じプロジェクトを書くときに、私は種類/反応-ルータ-DOM 4.0.xのバージョン@ istalledと私はそれを得るリフレッシュ/時計/一部-PARAMに

答えて

0

を得ることができないとき、問題があるのはなぜ4.XXバージョン

-ルータ-DOMを反応させてきましたクライアント側とサーバー側のルーティング。フロントエンドのルートへの移動(react-routerルートを使用)は、ブラウザのアドレスバーにそのURLを入力するのと同じではありません(またはページ上にあるときにそのアドレスを更新する)。

これはオンラインSOおよび他の場所で、ここで百万件の他の記事で対処されているのでに見て '内のルーティングサーバ側対クライアントが反応し、ルータのいる

0

たくさんJayce444ありがとう、私は文で記事を見つけましたあなたは私を与えると私はことを発見:非常に有用だった

React-router urls don't work when refreshing or writting manually

。問題は、Webpackを起動してリフレッシュするかブラウザに手動で入力したURLにReact RouterとReactがリセットされ、ブラウザからの最初のリクエストがバックエンドに送信されることです。

私の場合、私はTS + React to Webpackを開始します。これは、ルータがまだロードされていないときに最初のリクエストでindex.htmlを送信することができません。

しかし、使用にのみ反応すると、私はそれが通じ反応し、スクリプトのそのような状況のためのハンドラとルータがresetedされるリフレッシュ上のすべての時間を持って開始反応し、スクリプトがために

ビッグありがとうindex.htmlを私に送って検索文「反応ルータにおけるクライアントとサーバ側のルーティング」

関連する問題