在我的React Native应用程序中,我有一个TouchableOpacity,我想在从函数返回的条件下被禁用:

<TouchableOpacity onPress={() => this.someMethod()} disabled={this.checkIfDisabled}><Text>Click</Text></TouchableOpacity>


我的函数返回一个布尔值:

checkIfDisabled = () => {
   // ... really long logic
   return true/false;
}


但是,当我尝试实现此功能时,出现以下错误:
javascript - 在功能条件下禁用按钮-LMLPHP

如何根据函数返回的布尔值禁用按钮?

最佳答案

React Native希望您为“ disabled”道具提供一个布尔值。当前,您正在为“禁用”道具提供函数,而不是函数的布尔返回值。您可以在TouchableOpacity的父组件中使用setState来更改可以为TouchableOpacity的“ disabled”道具提供的布尔值。父组件状态的更改将导致父组件的重新渲染,从而导致TouchableOpacity。

考虑一下您想指示禁用TouchableOpacity的哪种行为/事件/状态更改。

关于javascript - 在功能条件下禁用按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55446717/

10-10 00:24