2017-12-03 8 views
2

모달과 비슷한 모달을 구축하려고합니다. 특정 트윗을 표시합니다.React Router V4 : 같은 화면에서 모달을 렌더링하고 URL 만 변경하고 전체 화면을 재구성하는 방법

이 스크린 샷은 모달 열 때마다, 상태 코드는 원래의 URL에 추가되는 것을 볼 수 있습니다,하지만 난 같은 화면에 남아에서
  1. enter image description here

    .
  2. 그런 다음 url로 브라우저의 주소창에 붙여 넣으면 I URL을 복사 할 때와 마찬가지로 모달을 열고 과 같은 콘텐츠가로드됩니다.

은 나를 처음 화면으로 덮었습니다. 즉, 동일한 화면에서 모달을로드하고 있습니다. 여기

Edit Modal Gallery-clone

문제는 모달 때 나는 URL이가 만들어지는 것을 즐겨 찾기에 사용자를 위해 가능하게하기 위해 무엇을해야 하는지를 생각이 없다는 것입니다 codesandbox의 반응 라우터 예제 디스플레이 (예에서 /갤러리/IMG/1) 백그라운드에서 동일한 구성 요소 (갤러리 구성 요소) 및 모달 OPE로 페이지를로드 할 수있는 해당 URL을 기반으로 다음

enter image description here 및 엔.

P. codesandbox의 예제에서, 나는 의도적으로 ModalSwitch 구성 요소에 몇 가지 경로를 생략했습니다.

답변

2

아마 같은 갤러리 구성 요소를 가리키는 두 개의 경로, gallery 및 gallery/img/: id를 만들 수 있습니다. 그런 다음 갤러리 구성 요소의 componentWillMount 동안 URL에 ID 매개 변수가 있는지 확인하고 모달을 렌더링하고로드 할 이미지를 결정할 수 있습니다.

그러면 ModalSwitch 구성 요소를 완전히 제거하고 모달을 닫을 때 사용자를 갤러리 경로로 다시 리디렉션 할 수 있으므로 URL을 항상 정확하게 유지할 수 있습니다.

+2

전에 답장을 보내지 않으려면 죄송합니다. 나는 네가 제안한 것을 시도했다. 다음은 [sandbox] (https://codesandbox.io/s/rlr967yr1q)에 대한 링크입니다. 나는 URL을 북마크 할 수 있기 때문에 다소 효과가 있지만, 같은 URL'gallery/img/: id'가 두 번 반복되기 때문에 브라우저의 뒤로 버튼을 두 번 눌러 탭의 기본값으로 리디렉션해야합니다. 페이지. – eddy

+0

예제를 시험해보고 싶다면 코드를 먼저 다운로드하십시오. 앱이 샌드 박스에서 직접 실행될 때 어떤 이유로 든 이전 설명에서 언급 한 버그가 나타나지 않으므로 코드를 먼저 다운로드하십시오. – eddy