React-Router 4를 사용하면 프로그래밍 방식으로 생성 된 특정 NavLink가 지속적으로 활성 상태로 표시되지 않습니다. 내에서 사이드를하는 것은이 같은 모양의 프론트 엔드 반응 :React-router 4 - 공유 구성 요소가있는 NavLink가 업데이트되지 않습니다.
<NavLink to="/">Home</NavLink>
<NavLink to="/books">Books</NavLink>
<NavLink to="/poems">Poems</NavLink>
{['hamlet', 'macbeth'].map(play => (
<NavLink to={`/plays/${play}` key={`play-${play}`}}>{play}</NavLink>
)}}
을 그리고 내 라우팅과 같은 :
나는 플레이 링크 하나에 사이를 이동<Switch>
<Route path="/" component={HomePageComponent} exact />
<Route path="/books" component={BooksComponent} />
<Route path="/poems" component={PoemsComponent} />
<Route path="/plays/:title" component={PlayComponent} />
<Route path="/plays/:title/:act" component={ActComponent} />
</Switch>
, /books
에서 /plays/macbeth
으로 변경하면 NavLink가 탭을 적절하게 업데이트합니다. 을 사이에서 탐색 할 때 /plays/macbeth
에서 /plays/hamlet
으로 이동하면 NavLink가 업데이트되지 않고 원래 탭 (이 경우 Macbeth)이 활성 상태로 유지됩니다.
구성 요소가 변경되지 않아서 NavLink isActive 검사의 항목이 실행되지 않는다고 생각됩니다. 이것은 다른 하위 링크 (예 : /plays/hamlet/actI
)로 이동 한 다음 /plays/macbeth
으로 이동하면 Macbeth 탭이 예상대로 활성화 됨으로 표시됩니다. 따라서 구성 요소가 변경되지 않은 경우에도 NavLink
을 강제로 업데이트하는 방법이 있습니까?
제안 해 주셔서 감사합니다.이를 반영했으며이를 반영하도록 제 질문을 업데이트해야합니다. 문제를 해결하지 못했을뿐만 아니라 하위 섹션 (예 :'/ plays/hamlet/actI') __stopped__이 사이드 바에서 활성 상태로 표시되어 의도 한 결과가 아니기 때문에 실제로 문제가 악화되었습니다. – MBrizzle
업데이트 된 제안이 수정되었습니다. 감사합니다. 구성 요소가 변경되지 않아도 다시 렌더링을 강제하는 것으로 보였으므로 NavLink 문제가 수정되었습니다. – MBrizzle