如果我的数组为空,我想disable TouchableHighlight,如果我的数组有值,我想将其改回enable

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>

以上是我的代码。我认为我做对了,但是没有用。任何建议或意见,将不胜感激。

最佳答案

你可以这样做

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

07-24 09:50
查看更多