2017-07-21 11 views
0

私はReact [15.6.1]とRouter [4.1.1]で記事検索を構築していますが、記事に直接アクセスしようとすると、 3000 /#/私が直接このlocalhostのような記事にアクセスした場合、それはReact Router v4で親ルートコンポーネントが実行されないようにしました

// SearchFilter Did Mount 

を印刷し、:それはルートローカルホストに行くとき

// === Layout ================== 
class Layout extends React.Component { 

    render() { 
     return (
      <Provider store={this.props.store}> 
       <HashRouter> 
        <div> 
         <Switch> 
          <Route exact path="/" component={SearchFilter} /> 
          <Route path="/article/:guid" component={Article} /> 
         </Switch> 
        </div> 
       </HashRouter> 
      </Provider> 
     ); 
    } 

} 

// === SearchFilter ================== 
class SearchFilter extends React.Component { 

    componentDidMount() { 
     console.log('SearchFilter Did Mount'); 
    } 

    render() { 
     return (
      <div>...</div> 
     ); 
    } 

} 

// === Article ================== 
class Article extends React.Component { 

    componentDidMount() { 
     console.log('Article Did Mount'); 
    } 

    render() { 
     return (
      <div>...</div> 
     ); 
    } 

} 

と呼ばれています1はそうではありません汝: 3000 /#/ a rticle/123456それは私の質問は、私は、以前のルートを実行しているから、それを防ぐことができますどのように、ある

// SearchFilter Did Mount 
// Article Did Mount 

を出力しますか? そこにいくつかのアクションをディスパッチして、Webサービスへのいくつかのajax呼び出しをトリガーしたいと思います。

おかげ

答えて

0

は、代わりにこれを試してみてください:

<HashRouter basename="/"> 
    <div> 
     <Switch> 
      <Route exact path="/search" component={SearchFilter} /> 
      <Route path="/article/:guid" component={Article} /> 
     </Switch> 
    </div> 
</HashRouter> 
+0

こんにちは、私はそれを避けようとしていました。ルート/ to/searchと私はそれを行うと、記事はちょうど動作を停止します – Kup

0

編集:私にとって

enter image description here

そのはうまく機能...言ったようなので...本当に奇妙なものがありますあなたのマシン上で隠された出来事、あるいは単に/をつけて/#/ article/123にURLを書き換えれば、最初のログはコンソールに残りますが、previあなたが新しいURL /#/ article/123にF5でブラウザをリロードすると、「Article did mount」だけが表示されます

+0

こんにちは@Melounekは、私の一部のtypoだった。私は使用しています** // localhost:3000 /#/ ** – Kup

+0

私は今質問を更新しました – Kup

+0

私はあなたのURLを入力した後、ブラウザ全体をリフレッシュする必要があると思います。 #/ anythinkを追加するとブラウザはリロードされません) – Melounek

関連する問題