在我的React Native应用程序中,我有一个TouchableOpacity
,我想在函数返回的条件下将其禁用:
<TouchableOpacity onPress={() => this.someMethod()} disabled={this.checkIfDisabled}><Text>Click</Text></TouchableOpacity>
和返回布尔值的函数:
checkIfDisabled = () => {
// ... really long logic
return true/false;
}
如何根据函数返回的布尔值禁用按钮?
答案 0 :(得分:3)
React Native希望您为“禁用”道具提供布尔值。当前,您正在为“禁用”道具提供函数,而不是函数的布尔返回值。您可以在TouchableOpacity的父组件中使用setState来更改可以为TouchableOpacity的“ disabled”道具提供的布尔值。父组件状态的变化将导致父组件的重新渲染,从而导致TouchableOpacity。
考虑您要决定禁用TouchableOpacity的行为/事件/状态改变的类型。
答案 1 :(得分:0)
你可以这样做:
checkIsDisabled = () => { 是真的 ? 返回真 : 返回假 }