Javascript 反应组件流类型检查中的可选功能属性失败
我正在使用React的PropTypes和Flow type checker,但我在获取可选功能prop以通过类型检查时遇到问题。以下是一个例子:Javascript 反应组件流类型检查中的可选功能属性失败,javascript,reactjs,flowtype,Javascript,Reactjs,Flowtype,我正在使用React的PropTypes和Flow type checker,但我在获取可选功能prop以通过类型检查时遇到问题。以下是一个例子: var Example = React.createClass({ propTypes: { exampleFn: React.PropTypes.func }, handleClick: function() { if (this.props.exampleFn) { this.props.exampleF
var Example = React.createClass({
propTypes: {
exampleFn: React.PropTypes.func
},
handleClick: function() {
if (this.props.exampleFn) {
this.props.exampleFn();
}
},
render: function() {
return <a onClick={this.handleClick}>Click here</a>;
}
});
我尝试过不同的变体,如if(this.props.exampleFn!==null&&this.props.exampleFn!==undefined){…}
或
this.props.exampleFn&&this.props.exampleFn()
知道我们正在防范可能为空/未定义的值,但我找不到任何有效的方法。当然,将道具类型更改为React.PropTypes.func.isRequired不会导致任何错误,但我想保留此道具的可选性
如何获得可选函数prop以通过类型检查?我们找到了一种方法,可以使PropType保持可选,但仍然可以通过流类型检查
...
handleClick: function() {
var exampleFn = this.props.exampleFn || null;
if (exampleFn) {
exampleFn();
}
},
...
如果(this.props.exampleFn!=null)
有效吗?
...
handleClick: function() {
var exampleFn = this.props.exampleFn || null;
if (exampleFn) {
exampleFn();
}
},
...