Chciałbym wiedzieć, czy istnieje lepszy sposób warunkowego przekazania właściwości niż użycie instrukcji if.
Na przykład w tej chwili mam:
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 />
);
}
}
});
Czy jest sposób, aby napisać to bez instrukcji if? Zastanawiałem się nad czymś podobnym do typu instrukcji inline-if w 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}
/>
);
}
});
Podsumowując : próbuję znaleźć sposób na zdefiniowanie właściwości dla Child
, ale przekazać wartość (lub zrobić coś innego), która Child
nadal pobiera wartość tego właściwości z Child
własnej getDefaultProps()
.
Child
? Poza tym, czy chciałeś powiedzieć<Child editableOpts={this.props.editableOpts} />
zamiast<Child editable={this.props.editableOpts} />
?