2016-12-30 3 views
1

を使用せずに、ルータの変化状態に反応:。は、だから私は明らかにこれを行う方法を知っているリンク

<Link to="/picture/123" state={{ fromDashboard: true }} /> 

そして、あなたはまた、それを渡すことで、状態を変更することができるが

私はあなたがいない場合ことを知っていますリンクを使用したい、あなたがプログラム的にナビゲートしたい、つまり、あなたはこれを使用する必要があると思います:

browserHistory.push('/url'); 

しかし、ルータの状態を変化させることに代替は何ですか?だから、これは私が現在知っている

  • (既知の)状態で渡すように「リンク」を使用して、新しいルート(既知)
  • に行くために「リンク」を使用して
  • 代替機能へルータの状態で渡すために代替機能を使用すると、ABOを使用<Link>小道具(???)

答えて

1

  • (既知の)新しいルートに行きます実際に日付が付けられています。ナビゲーションに使用するのがpathnameでない場合は、toの小道具がオブジェクトでなければなりません。これは「位置指定子」と呼ばれます。

    <Link to={{ pathname: '/picture/123', state: { fromDashboard: true } }} /> 
    

    同様に、位置記述子を履歴にプッシュできます。

    browserHistory.push({ 
        pathname: '/picture/123', 
        state: { fromDashboard: true } 
    }); 
    
  • +0

    私はこの例がドキュメントになかった理由は分かりません。とにかく、パス名にどのように変数を組み込みますか?すなわち古い例は 'comment/$ {this.props.num}'のようなものです。 – pizzae

    +0

    同じように、テンプレートリテラル{パス名: 'comment/$ {this.props.num}'}で文字列を構築します。 –

    +0

    docsは 'browserHistory'の例では位置記述子を含んでいませんが、' withRouter' https://github.com/ReactTraining/react-router/blob/v3.0.0/docs/API.mdに含まれています#pushpathorlocと 'Link' https://github.com/ReactTraining/react-router/blob/v3.0.0/docs/API.md#to documentationを参照してください。 –

    関連する問題