如何禁用TouchableHighlight組,如果其中一個按下?可能嗎 ?例如,我有listview,每行有兩個TouchableHighlights。如果其中一人按下,我想禁用這兩個可觸摸的onPress功能。禁用TouchableHighlight onPress?
3
A
回答
-1
這裏的一個選擇是使用一個非常基本的信號量。一旦單擊其中一個按鈕,就可以將全局變量x設置爲true。而在其他onPress功能,你可以返回,如果x爲true
onPressOne(){
if(this.semaphore)
return
this.semaphore = true
// other code here
}
onPressTwo(){
if(this.semaphore)
return
this.semaphore = true
// other code here
}
,直到重置this.semaphore = false
如果要禁用從TouchableHighlight的視覺亮點的按鈕不會做任何事情,你可以改變activeOpacity屬性當其中一個按鈕被點擊
1
我解決了這個問題。這是如何:
首先,感謝James Ide真棒button組件與disabled
道具。我寫了自定義組件 - main.js
- 按鈕組。並使用disabled
道具作爲禁用按鈕組。
index.ios.js
:
class PNTest extends React.Component{
constructor(props){
super(props)
this.state ={
clicked: []
}
}
render(){
return(
<View style={styles.container}>
<Main handleClick={this._handleClick.bind(this)} left={1} right={2} name={'group1'}/>
<Main handleClick={this._handleClick.bind(this)} left={3} right={4} name={'group2'}/>
<Text style={styles.welcome}>
{this.state.clicked}
</Text>
</View>
);
}
_handleClick(id, group){
this.state.clicked.push(id);
console.log(group + ' now inactive and clicked button id: ' + id);
console.log('clicked button ids: ' + this.state.clicked);
}
}
main.js
:
class Main extends React.Component{
constructor(props){
super(props)
this.state = {
disabled: false,
left: {},
right: {}
}
}
render(){
return(
<View style={styles.container}>
<Button
disabled={this.state.disabled}
style={[styles.buttonContainer, this.state.left]}
onPress={() => this._onPress(this.props.left)}>
Left
</Button>
<Button
disabled={this.state.disabled}
style={[styles.buttonContainer,this.state.right]}
onPress={() => this._onPress(this.props.right)}>
Right
</Button>
</View>
);
}
_onPress(id){
var left = {};
var right = {};
if(id === this.props.left){
left = styles.buttonSelected;
right = styles.buttonNotSelected;
}else if(id === this.props.right){
right = styles.buttonSelected;
left = styles.buttonNotSelected;
}
this.setState({
disabled: true,
left: left,
right: right
});
this.props.handleClick(id, this.props.name);
}
}
相關問題
- 1. TouchableHighlight onPress不工作
- 2. TouchableHighlight onPress不起作用
- 3. TouchableHighlight OnPress不調用函數
- 4. 無法在touchablehighlight onpress中設置狀態
- 5. 如何獲得TouchableHighlight的風格onPress
- 6. TouchableHighlight onPress在導航上自動觸發
- 7. 如何更改並從TouchableHighlight onPress獲取狀態?
- 8. TouchableHighlight按錯誤
- 9. TouchableHighlight組件?
- 10. DrawtoLayoutAndroid上的TouchableHighlight
- 11. onPress呼籲負載
- 12. React Native TouchableHighlight呈現爲空
- 13. 更改屏幕FlatList onPress
- 14. onPress在TouchableOpacity不會觸發
- 15. React Native onpress無法正常工作
- 16. 更新平板列表項onPress
- 17. React-native和redux動畫性能onPress
- 18. 陣營本地TouchableHighlight不工作
- 19. TouchableHighlight單擊不工作兩件作品
- 20. react-native onPress與參數綁定
- 21. 陣營本地TouchableHighlit OnPress功能
- 22. 附加功能來的onClick()/ onPress()
- 23. 添加onPress方法/可觸摸高亮
- 24. 如何在onpress時禁用進入第二行的輸入鍵?
- 25. 反應原生列表視圖TouchableHighlight
- 26. TouchableHighlight與滾動型路線不工作
- 27. react-native - TouchableHighlight - onPress - 傳遞參數 - 如果我傳遞迭代器var它是每次最高編號
- 28. React Native - 如何更改視圖的樣式和圖像onPress
- 29. 1個onPress on React Native中的2個事件
- 30. 何時使用TouchableNativeFeedback,TouchableHighlight或TouchableOpacity?
我不明白這一點。每行有相同的組件,可以說'',並且按鈕組件有兩個可觸摸的。如何處理禁用的行和其他活動的。如果我發送這樣的道具,'所有行都將被禁用。 –
我解決了這個問題。我將作爲答覆發佈。 –