在我的React Native应用程序中,我有一个TouchableOpacity
,我希望在从函数返回的条件下禁用它:
<TouchableOpacity onPress={() => this.someMethod()} disabled={this.checkIfDisabled}><Text>Click</Text></TouchableOpacity>
以及my函数,它返回一个布尔值:
checkIfDisabled = () => {
// ... really long logic
return true/false;
}
然而,当我尝试实现这个时,我得到了以下错误:
如何根据函数返回的布尔值禁用按钮?
3条答案
按热度按时间tct7dpnv1#
ReactNative期望您为“disabled”属性提供一个布尔值。您当前提供的是一个函数,而不是函数的布尔返回值,您可以在TouchableOpacity的父组件中使用setState来更改可为TouchableOpacity的“disabled”属性提供的布尔值。父组件状态的更改将导致呈现父对象,从而实现TouchableOpacity。
考虑您希望哪种行为/事件/状态更改来指示禁用TouchableOpacity。
exdqitrt2#
您可以这样做:
〈禁用的按钮={checkIsDisabled()?true:false} /〉
如果是真的,返回真:返回false }
siv3szwd3#
很晚才去参加聚会,但我刚刚发现这个解决方案非常有效:
<Button disabled={!!checkIfDisabled()} />