2017-01-24 5 views
0

저는 React/Redux/Router를 사용하고 있습니다.하지만이 질문은 실제로 라우터 질문 일 뿐이며 답을 찾을 수없는 것 같습니다. 본질적으로, 나는 '# 검색'해시가 URL에 존재하는 경우에만 앱을 시작하기를 원합니다. 그렇지 않으면 아무 것도하지 않습니다.반응 라우터 - 기본 경로 없음

다음과 같은 것을 사용하면 루트 URL '/'로 이동하면 오류가 발생합니다 (경로와 일치하지 않음).

ReactDOM.render(
    <Provider store={store}> 
    <Router history={browserHistory}> 
     <Route path="#search" component={HelloWorldContainer} /> 
    </Router> 
    </Provider>, 
    document.querySelector('.body-wrap'), 
); 

감사 어떤 도움 ... 당신은 웹 응용 프로그램의 기본 진입 점입니다 루트 '/'에 대한 경로를 제공하지 않았기 때문이다

답변

0

. 루트 '/'에 대한 경로를 제공하지 않는 이유가 확실하지 않지만 대응 라우터는 일치 할 수없는 경로에 대해 오류를 계속 throw합니다. 지정한 것과 일치하지 않는 경로의 전체 구성 요소를 전체 구성 요소로 제공 할 수 있습니다. 같은 :

<Route path='*' component={ErrorPage}/> 

또한, 경로 path='#search'에 대한 요청이 일치하는 정확한해야합니다. 따라서 위의 포괄적 인 경로가없는 한 /#search123에 대한 요청은 오류를 발생시킵니다.

+0

Keith, 또는 오해 하셨을지 모르겠지만 '#search'가있을 때만 내 앱을 실행하고 싶습니다. 그렇지 않으면 내 앱에서 아무 것도하지 않기를 원합니다. . 예를 들어 '/ blah'페이지를 입력하면 서버가 렌더링 된 페이지를 원하지만 '/ blah # search'로 이동하면 React 구성 요소가 렌더링 된 브라우저 렌더링 페이지가 표시됩니다. –

+0

사과드립니다. 내가 당신을 오해 한 것 같습니다. 쿼리 문자열과 경로 이름에 대한 액세스를 다루는 [React-Router Glossary] (https://github.com/ReactTraining/react-router/blob/master/docs/Glossary.md)를 체크 아웃하고 싶을 것입니다. –