Я хотел бы знать, есть ли лучший способ условно передать реквизит, чем использование оператора if.
Например, сейчас у меня есть:
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 />
);
}
}
});
Есть ли способ написать это без оператора if? Я думал о чем-то вроде встроенного оператора if в 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}
/>
);
}
});
Для того, чтобы обернуть вверх: Я пытаюсь найти способ, чтобы определить опору для Child
, но передать значение (или что - то еще), так что Child
до сих пор тянет это значение проп от Child
собственных getDefaultProps()
.