在功能条件下禁用按钮

时间:2019-04-01 00:31:12

标签: javascript react-native expo

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

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

和返回布尔值的函数:

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

但是,当我尝试实现此功能时,出现以下错误: enter image description here

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

2 个答案:

答案 0 :(得分:3)

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

考虑您要决定禁用TouchableOpacity的行为/事件/状态改变的类型。

答案 1 :(得分:0)

你可以这样做: