React Native 根据函数条件禁用按钮

pkln4tw6  于 2022-11-25  发布在  React
关注(0)|答案(3)|浏览(131)

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

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

以及my函数,它返回一个布尔值:

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

然而,当我尝试实现这个时,我得到了以下错误:

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

tct7dpnv

tct7dpnv1#

ReactNative期望您为“disabled”属性提供一个布尔值。您当前提供的是一个函数,而不是函数的布尔返回值,您可以在TouchableOpacity的父组件中使用setState来更改可为TouchableOpacity的“disabled”属性提供的布尔值。父组件状态的更改将导致呈现父对象,从而实现TouchableOpacity。
考虑您希望哪种行为/事件/状态更改来指示禁用TouchableOpacity。

exdqitrt

exdqitrt2#

您可以这样做:
〈禁用的按钮={checkIsDisabled()?true:false} /〉
如果是真的,返回真:返回false }

siv3szwd

siv3szwd3#

很晚才去参加聚会,但我刚刚发现这个解决方案非常有效:
<Button disabled={!!checkIfDisabled()} />

相关问题