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 Child
dem eigenen abzieht getDefaultProps()
.
Child
angeben? Wolltest du auch sagen<Child editableOpts={this.props.editableOpts} />
anstatt<Child editable={this.props.editableOpts} />
?