2017-10-06 52 views
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是真實的。

+2

如果不是太不方便了,你可以使用'{[styles.button,{不透明度:props.disabled? 0.2:1}]}。當按鈕未被禁用時,將'1'更改爲所需的不透明度。 – Dan

+0

@丹仍然不起作用,並提供與以前相同的結果。 –

+0

你可以驗證'this.state.waiting'實際上是在修改MyButton的道具嗎?以下是第一條評論中提到的樣式的簡單示例 - https://snack.expo.io/ry79Yn43b – Dan

回答