--- id: transferring-props title: propsの移譲 permalink: transferring-props-ja-JP.html prev: reusable-components-ja-JP.html next: forms-ja-JP.html --- コンポーネントを抽象的にラップすることはReactにおいて共通のパターンです。外のコンポーネントは単純なプロパティを表示し、中ではさらに複雑なインプリメンテーションの詳細を持つようになっています。 以下のように、古いpropsと追加の値を[JSXの拡張属性](/react/docs/jsx-spread-ja-JP.html)を使ってマージすることができます。 ```javascript ``` JSXを使わない場合は、以下のように、ES6の `Object.assign` か Underscore の `_.extend` といったオブジェクトヘルパーを使うことができます。 ```javascript React.createElement(Component, Object.assign({}, this.props, { more: 'values' })); ``` 以下のチュートリアルはベストプラクティスを提示しています。JSXや試験的なES7のシンタックスを使っています。 ## 手動での移動 ほとんどの場合、プロパティを明確に子要素に渡すべきです。それは、内部のAPIのサブセットだけを外に出していることと、認識しているプロパティが動作することを保証します。 ```javascript var FancyCheckbox = React.createClass({ render: function() { var fancyClass = this.props.checked ? 'FancyChecked' : 'FancyUnchecked'; return (
{this.props.children}
); } }); React.render( Hello world! , document.getElementById('example') ); ``` しかし、 `name` プロパティや `title` プロパティや `onMouseOver` はどうでしょうか? ## JSXにおける `...` を使った移譲 > 注意: > 以下の例では、実験的なES7のシンタックスであることを示すために `--harmony ` フラグが必要になります。ブラウザ上でJSXトランスフォーマーを使う際には、単純に `