2017-03-11 16 views
0

深い入れ子の子コンポーネントの1つにhistory.listenを使用して位置の変更を聞きたいです。React Router、子コンポーネントからアクセス履歴オブジェクト

this.props.historyの親の上位コンポーネントは、子コンポーネントまですべて小道を通過する必要がありますか?

私が使用している2.8.1反応し、ルータ

それは私がこれを容易に行うことができます場合、私は新しいバージョンにアップグレードして喜んで。

+0

リアクト-ルータがダウン深いリーフノードへの子供たちに、コンテキストとして歴史オブジェクトが渡さ。コンテキストを使用して履歴オブジェクトを取得する –

答えて

1

ルータコンテキストを取得すると、historyが得られます。

import React, {PropTypes} from 'react'; 
 

 
class myComponent extends React.Component { 
 
    render() { 
 
     console.log(this.context.history); 
 
    } 
 
} 
 

 
myComponent.contextTypes = { 
 
    history: PropTypes.object 
 
} 
 

 
export default myComponent;

+0

私はあなたが別のバージョンを使用していると思う、私はthis.context.historyでも親コンポーネントで取得することはできません。 – eugene

+0

うーん...変な。私はこのコードを2.8.1でテストしました。バージョンとそれが働いた。 contextTypesで 'history'を定義し、コンポーネントで' history'属性を定義していることを確認してください – disstruct

関連する問題