警告:道具类型失败:提供给`myComponent`的类型为`function`的道具propsomesomefunctionfunction无效,预期为布尔值

时间:2020-02-24 08:23:06

标签: reactjs react-native react-proptypes

我正面临此警告,并确定其与PropTypes相关

在我的父组件 somecomponentfunction 中,它返回一个布尔值并将其传递给子组件

在prent组件中

  somecomponentfunction = () => {
    this.setState({ somecomponentfunction: false })
  }

并且像

一样传递给childComponet
<myComponent somecomponentfunction={this.somecomponentfunction} />

和子组件中,道具中的属性相同,并且在PropType中进行了检查

myComponent.PropTypes={
 somecomponentfunction: PropTypes.bool,
}

你们能告诉我哪里出了问题吗

1 个答案:

答案 0 :(得分:2)

那是因为PropTypes不会执行您的函数,而是检查返回的结果是否为布尔值。它直接检查道具携带的类型。

因此somecomponentfunction不是布尔值,而是函数。如果要获得该功能的结果,则需要直接执行

somecomponentfunction={this.somecomponentfunction()}

或将propType控件更改为:

somecomponentfunction: PropTypes.func