我正面临此警告,并确定其与PropTypes相关
在我的父组件 somecomponentfunction 中,它返回一个布尔值并将其传递给子组件
在prent组件中
somecomponentfunction = () => {
this.setState({ somecomponentfunction: false })
}
并且像
一样传递给childComponet<myComponent somecomponentfunction={this.somecomponentfunction} />
和子组件中,道具中的属性相同,并且在PropType中进行了检查
myComponent.PropTypes={
somecomponentfunction: PropTypes.bool,
}
你们能告诉我哪里出了问题吗
答案 0 :(得分:2)
那是因为PropTypes不会执行您的函数,而是检查返回的结果是否为布尔值。它直接检查道具携带的类型。
因此somecomponentfunction
不是布尔值,而是函数。如果要获得该功能的结果,则需要直接执行
somecomponentfunction={this.somecomponentfunction()}
或将propType控件更改为:
somecomponentfunction: PropTypes.func