Ich würde gerne wissen, ob es einen besseren Weg gibt, eine Requisite bedingt zu übergeben, als eine if-Anweisung zu verwenden.
Zum Beispiel habe ich gerade:
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 />
);
}
}
});
Gibt es eine Möglichkeit, dies ohne die if-Anweisung zu schreiben? Ich habe etwas in der Art einer Inline-If-Anweisung in der JSX gedacht:
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}
/>
);
}
});
Zum Abschluss : Ich versuche, einen Weg zu finden, eine Requisite für zu definieren Child, aber einen Wert zu übergeben (oder etwas anderes zu tun) Child, der den Wert dieser Requisite immer noch von Childdem eigenen abzieht getDefaultProps().
Childangeben? Wolltest du auch sagen<Child editableOpts={this.props.editableOpts} />anstatt<Child editable={this.props.editableOpts} />?