Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应组件流类型检查中的可选功能属性失败_Javascript_Reactjs_Flowtype - Fatal编程技术网

Javascript 反应组件流类型检查中的可选功能属性失败

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

我正在使用React的PropTypes和Flow type checker,但我在获取可选功能prop以通过类型检查时遇到问题。以下是一个例子:

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();
  }
},

...