0
我正在尝试添加禁用按钮功能的功能。我希望按钮不可点击,并且透明度较低。当我点击按钮时,我在外部组件中设置了该状态,该按钮应该被禁用(这是在等待来自服务器的响应时)。不可点击的部分工作,但我不能让它在点击后降低其不透明度。无法在TouchableOpacity上设置禁用的不透明度
组件
<MyButton onPress={ this.setWaiting.bind(this) }
disabled={ this.state.waiting } />
myButton的
const disabledStyle = {
opacity: 0.2,
}
....
<TouchableOpacity
style={ [styles.button, props.disabled && disabledStyle] }
onPress={ onPress }
disabled={ props.disabled }>
....
</TouchableOpacity>
如果我改变disabledStyle
到,虽然设置另一个背景颜色,它按预期工作,并改变背景颜色,而disabled
是真实的。
如果不是太不方便了,你可以使用'{[styles.button,{不透明度:props.disabled? 0.2:1}]}。当按钮未被禁用时,将'1'更改为所需的不透明度。 – Dan
@丹仍然不起作用,并提供与以前相同的结果。 –
你可以验证'this.state.waiting'实际上是在修改MyButton的道具吗?以下是第一条评论中提到的样式的简单示例 - https://snack.expo.io/ry79Yn43b – Dan