Ich würde gerne wissen, ob es eine bessere Möglichkeit gibt, eine Requisite bedingt als eine if-Anweisung zu übergeben.Reagieren: Inline bedingt Prop übergeben an Komponente
Zum Beispiel gerade jetzt habe ich:
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 war etwas entlang der Linien von einer Art von Inline-if-Anweisung in der JSX denken:
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}
/>
);
}
});
Zur Nachbereitung: Ich versuche, einen Weg zu finden, eine Stütze für Child
, zu definieren, aber Pass ein Wert (oder etwas anderes tun), so dass Child
immer noch den Wert dieses Props von Child
eigenen getDefaultProps()
zieht.
Können Sie auch den Code für "Child" hinzufügen? Willst du auch sagen: 'anstelle von' '? –
@JimSkerritt Ich habe die Requisiten nicht verwechselt, obwohl ich weiß, dass es so aussieht. Ich versuche, ['react-bootstrap-table'] (http://allenfang.github.io/react-bootstrap-table/example.html) zu verwenden und das ist das Format, das sie verwenden. Ich bin mir nicht sicher, ob der 'Child'-Code wirklich wichtig ist für das, was ich frage, weshalb ich ihn nicht aufgenommen habe. Ich bin wirklich nur auf der Suche nach einer Möglichkeit, optional eine Berechtigung an "Child" weiterzuleiten oder nicht zu übergeben, die keine große Menge an ähnlichem Code in if-Anweisungen im "Parent" benötigt. –
Gotcha, nur checking :) Ich werde in Kürze eine Antwort für Sie haben –