Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React-native- conditionally Disable TouchableHighlight if array is empty

I want to disable TouchableHighlight if my array is empty and turn it back to enable if my array has value.

this.state = {
     modalVisible: false,
     array:[],
    }
  }

toggleModal(visible) {
    this.setState({modalVisible: visible})
    }

<TouchableHighlight
 underlayColor="transparent"
 onPress = {() => {
 if(this.state.array == undefined || this.state.array.length == 0){
 this.toggleModal(this.state.modalVisible)}
 else {
 this.toggleModal(!this.state.modalVisible)}
}}>
<Text>close</Text>
</TouchableHighlight>

Above is my code. I think I have it right but its not working. Any advise or comments would be really appreciated.

like image 803
kirimi Avatar asked Aug 15 '26 01:08

kirimi


1 Answers

You can do this

this.state =
{
    modalVisible: false,
    array:  []
}

toggleModal = visible => this.setState({modalVisible: visible})

render = () =>
{
    return (
        <TouchableHighlight
            underlayColor="transparent"
            disabled={this.state.array.length === 0}
            onPress = {() =>
            {
                if(this.state.array == undefined || this.state.array.length == 0)
                    this.toggleModal(this.state.modalVisible);
                else
                    this.toggleModal(!this.state.modalVisible);
            }}>
            <Text>close</Text>
            </TouchableHighlight>
    );
}
like image 86
TBouder Avatar answered Aug 16 '26 14:08

TBouder