Me gustaría saber si hay una mejor manera de pasar un accesorio condicionalmente que usar una declaración if.
Por ejemplo, ahora mismo tengo:
var parent = React.createClass({
propTypes: {
editable: React.PropTypes.bool.isRequired,
editableOpts: React.PropTypes.shape({...})
},
render: function() {
if(this.props.editable) {
return (
<Child editable={this.props.editableOpts} />
);
} else {
// In this case, Child will use the editableOpts from its own getDefaultProps()
return (
<Child />
);
}
}
});
¿Hay alguna forma de escribir esto sin la declaración if? Estaba pensando en algo parecido a un tipo de declaración en línea en el JSX:
var parent = React.createClass({
propTypes: {
editable: React.PropTypes.bool.isRequired,
editableOpts: React.PropTypes.shape({...})
},
render: function() {
return (
<Child
{this.props.editable ? editable={this.props.editableOpts} : null}
/>
);
}
});
Para concluir : estoy tratando de encontrar una manera de definir un prop para Child, pero pasar un valor (o hacer algo más) de modo que Childaún extraiga el valor de ese prop del Childpropio getDefaultProps().
Childtambién? Además, ¿quiso decir en<Child editableOpts={this.props.editableOpts} />lugar de<Child editable={this.props.editableOpts} />?