加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 禁用TouchableHighlight onPress?

发布时间:2020-12-15 09:34:05 所属栏目:百科 来源:网络整理
导读:如果其中一个被按下,如何禁用TouchableHighlight组?可能吗 ?例如,我有listview,每行有两个TouchableHighlights.如果其中一个按下,我想禁用这两个触摸的onPress功能. 解决方法 我解决了这个问题方法如下: 首先,感谢James Ide用于0700道具的超赞button组件.
如果其中一个被按下,如何禁用TouchableHighlight组?可能吗 ?例如,我有listview,每行有两个TouchableHighlights.如果其中一个按下,我想禁用这两个触摸的onPress功能.

解决方法

我解决了这个问题方法如下:

首先,感谢James Ide用于0700道具的超赞button组件.

我为按钮组编写了自定义组件–main.js–.并使用禁用道具禁用按钮组.

screenshot and logs

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);
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读