2017-12-11 6 views
1

반응 라우터 v4.2를 사용 중입니다. 리디렉션 내부 스위치가 구성 요소 장착을 트리거하지 않습니다. 나는 상태 관리 라이브러리를 사용하지 않고 순수한 반응 코드 일 뿐이며 버그는 크롬에서만 발생합니다! 이것은 라우팅 내 응용 프로그램 구성 요소입니다 :Chrome에서 리디렉션시 장착 라우터가 장착되지 않은 라우터가 있음

const App =() => (
    <section id="content"> 
     <div className="container"> 
      <Switch> 
       <Redirect exact from='/' to='/entries/voto'/> 
       <Route path="/entries/:order" component={EntryList}/> 
      </Switch> 
     </div> 
    </section> 
) 
export default App; 

나는 '/'와 함께 제공되는 URL (/entries/voto) 브라우저에 표시되지만 라이프 사이클 방법조차 생성자라고하지를 웹 사이트의 URL을 입력, 그래서 나는 판단되는 경우 shouldComponentUpdate 메소드를 구현하지 않는 EntryList 구성 요소에 의존하는 것은 없습니다.

답변

0

는 잘 모르겠어요하지만 당신은 내가 component을 변경하고 render로 대체이

const App =() => (
<section id="content"> 
    <div className="container"> 
     <Switch> 
      <Redirect exact from='/' to='/entries/voto'/> 
      <Route path="/entries/:order" render={ props => <EntryList {...props}/>}/> 
     </Switch> 
    </div> 
</section> 
) 
export default App; 

같은 코드 뭔가를 변경하십시오 수 있습니다. 어떤 시나리오에서는 도움이된다.

+0

안녕하세요, 감사합니다.하지만 아무런 효과가 없습니다. –

+0

@vittoriomaiullari 바이올린 또는 jsbin을 만들 수 있습니까? – MBehtemam

+0

내일 할 수는 있지만 일이 크롬에서만 발생하며 앱이 Chrome 익명 모드 일 때 작동하므로 Chrome 동작에 따라 다소 달라질 수 있습니다. –

0

나는 비슷한 문제가있다. 제 경우에는 Redirect 요소를 Route 요소 다음에 넣어야했습니다.

내 응용 프로그램에서 이와 비슷한 기능이 작동합니다.

return (<div> 
      <Route exact path="/login" component={LoginContainer}/> 
      {this.props.location.pathname !== '/login'&& 
       <Redirect exact from="/" to={"/login"} /> 
      } 
     </div>); 
0

감사합니다 모두들 크롬 캐시 문제 인 것처럼 보입니다. 시크릿 모드로 앱을 시험해 보았고 새로운 크롬을 설치하면 정상적으로 작동합니다.