2017-06-19 4 views
0

注:これは私の問題とは関係ありませんが、すでにthis linkと表示されています。Reactのダムの子コンポーネントにコンテキストを渡すことは可能ですか?

は、私は私のアプリのコンポーネントを持って言う:

import React, { Component, PropTypes } from 'react'; 

class App extends Component { 
    // stuff & code 
    <Header /> 
    // code & stuff 
} 

App.childContextTypes { 
    router: Proptypes.object.isRequired; 
} 

そして私は、私は一定のとして定義されヘッダ・コンポーネントを持っている:

import React, { PropTypes } from 'react'; 

getPath() { 
    const router = { this.context }; 
    return router.location.pathname; 
} 

const Header = (props) => { 
    // header stuff 
    <div>{getPath()}</div> 
} 

Header.contextTypes { 
    router: Proptypes.object.isRequired; 
} 

上記のすべては、ダミーのコードですが、それです一言で言えばわかるように。これまでのところ、ヘッダのルータオブジェクトにアクセスしようとすると、routerオブジェクトはundefinedです。このような方法で、constであり、Reactクラスとして明示的に定義されていないコンポーネントに小道具を渡すことは可能ですか?

私の反応プロジェクトでは、私は反応ルータを使用しています。

答えて

0

ステートレスコンポーネントにコンテキストを渡すことができます。 React docs

2番目の引数でコンテキストを取得します。

const Header = (props, context) => 
{ 
     console.log(context); 
     return (<div></div>); 
} 
Header.contextTypes = { 
    router: Proptypes.object.isRequired; 
} 
関連する問題