2016-10-10 2 views
3

Ich habe eine <TouchableHighlight> Komponente wrapping eine <Text>, und onPress Ich setze den Zustand boolean auf false, um es verschwinden zu lassen. Funktioniert wie ein Zauber auf iOS, aber auf Android verschwindet die <Text>, aber die <TouchableHighlight> wird immer noch gerendert.TouchableHighlight nicht respektieren Zustand ändern

Irgendwelche Zeiger?

{(this.state.showUpdateToast && this.state.updateCount > 0) ? 
      (<TouchableHighlight 
      underlayColor='rgba(116, 59, 243, 1)' 
      style={styles.toast} 
      onPress={this.refresh.bind(this)} 
      > 
      <Text style={styles.toastText}> 
       {this.state.updateCount}{this.state.updateCount < 2 ? this.props.getLabel('updateToastSingle') : this.props.getLabel('updateToast')} 
      </Text> 
      </TouchableHighlight>) 
      : null 
     } 
+0

Ihr Kind eines berührbaren immer eine Ansicht sein sollte, sie mit anderen nicht so gut funktionieren, Elemente, so wickeln Sie Ihren Text in einer Ansicht –

+0

Ich denke nicht, dass es das ist. Und das Problem ist, dass nicht unmounten. Die tut. – amit

+0

Es wäre hilfreich, wenn Sie Stile posten und Code aktualisieren. – Jickson

Antwort

2

Nicht sicher, ob dies das Problem lösen, aber können Sie so etwas wie dies versuchen:

<TouchableHighlight 
    underlayColor="rgba(116, 59, 243, 1)" 
    style={[styles.toast, !(this.state.showUpdateToast && this.state.updateCount) && { opacity: 0 }]} 
    onPress={this.refresh.bind(this)} 
> 
    <Text style={styles.toastText}> 
    {this.state.updateCount}{this.state.updateCount < 2 ? this.props.getLabel('updateToastSingle') : this.props.getLabel('updateToast')} 
    </Text> 
</TouchableHighlight> 
Verwandte Themen