2016-03-18 5 views
5

Wie kann ich Ansichten bedingt rendern? Beispiel: Wenn meine App nicht mit dem Internet verbunden ist - render error view, falls verbunden - render WebView? Ist das möglich mit reagieren nativ? Ich möchte nicht rein htmlReactive Native View Rendern

Antwort

4

Logic Ansichten bedingt zu machen, Ihr Beispiel mit:

render() { 
    if (!this.state.isConnected) { // error 
    return (
     <View></View> 
    ); 
    } 
    else { 
    return (// webview 
     <WebView /> 
    ); 
    } 
} 
3

In Ihrer Rendermethode können Sie Bedingungen wie das folgende Beispiel definieren. Zum Beispiel können Sie Ihre Verbindung bei der Methode componentDidMount überprüfen und dann Ihre Requisiten setzen.

render(){ 
      if(this.state.isConnected == 'Online') 
      return this.webView(); 
      else 
      return this.renderAnotherView(); 
     } 
+0

Diese Methode zeigte keine veiw. Ich habe Requisiten für online und offline, ich will nur this.state.isConnected == 'Online' - zeigen Sie Webview, wenn offline - zeigen Sie eine andere veiw – TeodorKolev

+0

this.props.hasConnection war nur ein Beispiel. Sie können Ihre Verbindung prüfen und Ihr WebView oder eine andere von Ihnen definierte Ansicht zurückgeben – sekogs

0

Wenn es spezifisch für das WebView ist, enthält diese Komponente zwei Renderfunktionen.

renderError Funktion

Funktion, die eine Ansicht kehrt zu zeigen, wenn ein Fehler vorliegt.

renderLoading Funktion

Funktion, die eine Ladeanzeige zurückgibt.

WebView Component Docs.

Mit renderError Funktion können Sie eine Ansicht zurückkehren können angezeigt gibt es einen Fehler der App mit nicht mit dem Internet verbunden.