ReactのES6-classでのコンテキスト
class PutContext extends React.Component { getChildContext() { return {color: '#03a9f4'}; } render() { return <div>{this.props.children}</div>; } } // childContextTypesはpropTypesと同じスタイルの設定 PutContext.childContextTypes = {color: React.PropTypes.string}; class GetContext extends React.Component { // コンストラクタの第二引数にcontextが渡され、コンテキストを利用したstate初期化が可能 constructor(props, context) { super(props, context); this.state = { color: context.color }; } render() { const color = this.state.color; return <div style={{color: color}}>the context color is {color}.</div>; } } // contextTypesもpropTypesと同じスタイルの設定 GetContext.contextTypes = {color: React.PropTypes.string}
react/ReactComponent.js at master · facebook/react · GitHub
上記リンク先、React.Componentのソースを見るとドキュメントに明らかな第一引数のpropsだけでなくコンストラクタには第二、第三の引数があってコンテキストが渡されてきてました。よってES6-classを用いたときに従来のgetInitialState()をコンストラクタ内の処理で置き換える際にコンテキストを参照することが可能。