2016-07-27 7 views

答えて

9

あなたはcomputed property nameでオブジェクトを初期化して、属性に変換するJSX Spread Attributesを使用することができます。

const DemoComponent = ({ variablePropName, variablePropValue }) => { 
    const variableAttribute = { [variablePropName]: variablePropValue }; 
    return (
     <input type="text" { ...variableAttribute } /> 
    ); 
}; 
1

あなたはそれをあなたがやっている方法を行うことはできません。あなたはあなたの属性をオブジェクトとして定義し、それをspread属性として渡す必要があります。あなたが渡すオブジェクトの

プロパティは、コンポーネントの小道具にコピーされます。

あなたは、この複数回使用したり、他の属性とそれを組み合わせることができます。

var Hello = React.createClass({ 
 
     render: function() { 
 
     
 
     var opt = {} 
 
     opt['placeholder'] = "enter text here"; 
 
     return (<div> 
 
     Hello {this.props.name} 
 
     <div> 
 
     \t <input type="text" {...opt}/> 
 
     </div></div>); 
 
     } 
 
    }); 
 
    
 
    ReactDOM.render(
 
     <Hello name="World" />, 
 
     document.getElementById('container') 
 
    );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script> 
 
<div id="container"> 
 
    <!-- This element's contents will be replaced with your component. --> 
 
</div>

DOCS

関連する問題