React: inline conditionally pass prop to component
Solution 1:
You were close with your idea. It turns out that passing undefined
for a prop is the same as not including it at all, which will still trigger the default prop value. So you could do something like this:
var parent = React.createClass({
propTypes: {
editable: React.PropTypes.bool.isRequired,
editableOpts: React.PropTypes.shape({...})
},
render: function() {
return <Child
editable={this.props.editable ?
this.props.editableOpts :
undefined}
/>;
}
});
Solution 2:
Add a spread operator to the this.props.editable
:
<Child {...(this.props.editable ? {editable: this.props.editableOpts} : {})} >
should work.