問題タブ [react-router-v4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
167 参照

react-router-v4 - react-router v4:「/」ページを他のページの同義語としてどのように処理しますか?

複数の URL に対して同じ単一ページ アプリをレンダリングするサーバーがあります。

Aを「ホーム」ページとして機能させたい。したがって、「/」または「/A」へのブラウザ リクエストは、同じものを表示するはずです。

特に、ページ A と B へのリンクを作成し、A へのリンクを "/" と "/A" に対してアクティブとしてマークしたいと考えています。

だから私は次のようなものを使用しています:

"/" を "/A" の同義語にするにはどうすればよいですか? 私が試したこと:

  • Route別のものを追加path="/": これにより、2 つのコンポーネントが表示されます
  • のような正規表現を使用path="/(A)?": これは正しいコンポーネントを表示しますが、リンクはアクティブとしてマークされていません

代わりにサーバー側のリダイレクトとして実装する必要があります(同じページコンテンツを提供するのではなく、/リダイレクトするだけですか?)/A

0 投票する
3 に答える
44737 参照

react-router-v4 - react-router 4 - ブラウザの履歴には DOM が必要です

私はreact-router 4を使用してサーバー側のレンダリングを試みています。ここで提供されている例に従っていますhttps://reacttraining.com/react-router/web/guides/server-rendering/putting-it-all-together

サーバーの例に従って、使用する必要がありますStaticRouter。例に従ってインポートすると、StaticRouter が未定義として表示されます

オンラインでいくつかの調査を行った後、使用できることがわかりましreact-router-domた。これで、インポート ステートメントは次のようになります。

ただし、コードを実行するInvariant Violation: Browser history needs a DOMと、ブラウザーに表示されます。

私のserver.jsファイルコード

そして私の client/index.js コード


Update v1 私の例を最小限に減らしても、同じエラーが発生します。

clientIndex.js

serverIndex.js

App.js

0 投票する
0 に答える
619 参照

reactjs - / 反応ルーター v4 の一致するインデックス ルートのみ

私が何をしても、パスが「/」の場合は機能しますが、それ以外は何もありません。

パス「/」を作成するとどちらも機能しますが、他のルートを機能させることができず、「Cannot GET /test」というメッセージが表示されます。Create-react-appを使用するとルートを機能させることができるので、エラーはサーバーまたはwebpackに関係している可能性があると思いますが、私はかなり無知です.

サーバー側のコードで何か間違ったことをしている可能性があると思います

私のディレクトリ構造は

助けていただければ幸いです。

将来この問題が発生した場合は、次のコードをサーバー ファイルに追加することで問題を解決できました。