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 Child
aún extraiga el valor de ese prop del Child
propio getDefaultProps()
.
Child
también? Además, ¿quiso decir en<Child editableOpts={this.props.editableOpts} />
lugar de<Child editable={this.props.editableOpts} />
?