2017-12-03 5 views
2

私はモーダルと同じように動作するモーダルを作成しようとしています特定のツイートを表示する。そのスクリーンショットでリアクタールーターV4:同じ画面でモーダルをレンダリングしてURLだけを変更し、そのURLで画面全体を再構築できるようにする方法

enter image description here

  1. あなたはモーダルが開いているときは、常に、ステータスコードは、元のURLに付加されていることを確認することができますが、私は同じ画面に残ります。
  2. URLをコピーしてブラウザのアドレスバーI に貼り付けたテイクでは、URLをコピーしたときと同じように、モーダルオープン と同じ内容がバックグラウンドでロードされます。

私は最初の部分で覆われています。すなわち、同じ画面にモーダルを読み込んでいます。

ここでの問題は、私がブックマークへのユーザーのモーダルである場合は、それが作成のURLのためにそれを可能にするために何をすべきか見当がつかないということですcodesandboxに

Edit Modal Gallery-clone

反応し、ルータの例ですディスプレイ(この例では/ギャラリー/ IMG/1

enter image description here、次いで背景とモーダルOPEに同じ成分(ギャラリーの構成要素)を含むページをロードすることができるそのURLに基​​づいてn。

P.S. codesandboxの例では、私は意図的にModalSwitchコンポーネントにいくつかのルートを残しました。

答えて

2

おそらく、同じギャラリーコンポーネントを指す2つのルートgalleryとgallery/img /:idを作成できます。その後、ギャラリーコンポーネントのcomponentWillMountの間に、URLにidパラメータが含まれているかどうかを確認し、モーダルとイメージを読み込むことを決定できます。

これで、ModalSwitchコンポーネントを完全に削除し、モーダルを閉じるときにユーザーをギャラリールートにリダイレクトすることができ、URLを常に正確に保つことができます。

+2

前に返信して申し訳ありません。私はあなたが提案したものを試しました。ここに[sandbox](https://codesandbox.io/s/rlr967yr1q)へのリンクがあります。私はちょうどブックマークすることができますが、同じURL 'gallery/img /:id'が2回繰り返されるので、タブのデフォルトにリダイレクトされるためにブラウザの戻るボタンを2回押す必要がありますページ。 – eddy

+0

例を試してみたい場合は、コードを先にダウンロードしてみてください。前のコメントで述べたバグは、アプリがサンドボックスから直接実行されたときに表示されないためです。 – eddy

関連する問題