我想知道是否有比使用 if 语句更好的方法来有条件地传递props。
例如,现在我有:
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 语句的情况下写这个?我在想一些类似于 JSX 中的 inline-if-statement 类型的东西:
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}
/>
);
}
});
总结:我试图找到一种方法来为 定义propsChild
,但传递一个值(或做其他事情),这样Child
仍然可以从Child
自己的getDefaultProps()
.