Как отключить TouchableOpacity при нажатии? Реагировать-Native - PullRequest
0 голосов
/ 14 января 2020

Как отключить TouchableOpacity при нажатии на него?

Это мой код:

<TouchableOpacity onPress={() => this._pickupHandler(item.p, deliv.party, index)}>
                                            <View style={styles.carg}>
                                                <Text style={styles.delivered_text}>Ok{deliv.loca} {deliv.addres} {deliv.pos} </Text>
                                            </View>
                                        </TouchableOpacity>

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Хорошо, вам нужно другое состояние, к которому будет обращаться, если вы хотите его отключить.

позволяет создать состояние var TODISABLED и изначально установить для него значение false.

Теперь предположим, что вы хотите отключить его после 1 клика, вы можете сделать это, установив для состояния состояние true после клика:

<TouchableOpacity disabled={this.state.TODISABLED} onPress={() => {this._pickupHandler(item.p, deliv.party, index);this.setState({TODISABLED:true})}}>
                                            <View style={styles.carg}>
                                                <Text style={styles.delivered_text}>Ok{deliv.loca} {deliv.addres} {deliv.pos} </Text>
                                            </View>
                                        </TouchableOpacity>

Надеюсь, это поможет. не стесняйтесь сомнений

0 голосов
/ 14 января 2020

просто передайте отключенную опору в TouchableOpacity для вашего примера

export default class Touchable extends Component {
  constructor(props) {
    super(props);
    this.state = {
      disabled: false,
    };
  }

  onPressButton = (state) => {
    this.setState({
      disabled: state,
    });
  };
  render() {

    return (
      <TouchableOpacity disabled={this.state.disabled} onPress={() => {
        this.onPressButton(true);
        this._pickupHandler(item.p, deliv.party, index)
      }}>
        <View style={styles.carg}>
          <Text style={styles.delivered_text}>Ok{deliv.loca} {deliv.addres} {deliv.pos} </Text>
        </View>
      </TouchableOpacity>
    );
  }
}
...