javascript - 在功能条件下禁用按钮

标签 javascript react-native expo

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

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

我的函数返回一个 bool 值:

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

但是,当我尝试执行此操作时,出现以下错误: enter image description here

如何根据函数返回的 bool 值禁用我的按钮?

最佳答案

React Native 期望您为“disabled”属性提供一个 bool 值。您目前正在为“禁用” Prop 提供一个函数,而不是函数的 bool 返回值。您可以在 TouchableOpacity 的父组件中使用 setState 来更改您可以为 TouchableOpacity 的“已禁用” Prop 提供的 bool 值。父组件状态的更改将导致重新渲染父组件,从而重新渲染 TouchableOpacity。

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

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

相关文章:

php - 如何简化 php API 中格式化数组列表数据以提供 React Native 部分列表

javascript - 单击 td 时更改 bgcolor?

javascript - jquery-ui 日期选择器与 showOn : button showed even if source input is disabled

ios - 设置或删除react-native init引入的UIViewControllerBasedStatusBarAppearance键

javascript - 带有 socket.io websocket 的 Expo 无法连接

android - Expo 分离项目自定义字体在 Android 上不起作用

react-native - exp 初始化项目 [11 :31:26] zlib: unexpected end of file

JavaScript &lt;!--//--> 是必需的吗?

javascript - 动态构建数组,附加值

c# - 有没有办法防止 "The requested session cannot be accepted. It may be locked by another receiver."