2017-06-06 9 views
0

Es tut mir leid, wenn das eine einfache Frage ist, aber ich kann es nicht funktionieren lassen.So verbinden Sie den Login-Button mit einer anderen Seite

Momentan habe ich eine Schaltfläche, die Main (die Hauptseite meiner App) durch Aufruf der OnPress-Funktion zurückgeben soll.

class Button extends Component{ 
    onTap(){ 
     return <Main/>; 
    } 

    render(){ 
     return(
      <View> 
       <TouchableOpacity 
        onPress={this.onTap} 
        style={styles.buttonContainer}> 
        <Text style={styles.buttonText}>LOGIN</Text> 
       </TouchableOpacity> 
      </View> 
     ) 
    } 
} 

Aber ich bin immer diese Fehlermeldung:

undefined is not a function (evaluating '_this2.props.onTap()') 

Kann mir jemand helfen hier? Ich weiß nicht, was zuerst durch docs über JSX

+0

Sind Sie wirklich Ihren vollständigen Code zu geben? Ich kann keine 'props.onTap' in Ihrem Code sehen ... – OlivierM

+0

@OlivierM Ich habe keine Props.onTap in meinem Code. War das, weil ich diesen Konstruktor (Requisiten) { super (Requisiten) } in meiner Hauptdatei index.android.js habe? – karmacollide

+0

Ich bin mir nicht sicher, ob ich wirklich verstehe, wollen Sie tatsächlich zu Ihrer Komponente navigieren oder sie in Ihre aktuelle laden? – NinetyHH

Antwort

0
class Button extends Component{ 
constructor(props) { 
    super(props); 
    this.state={isLogin:false} 
} 

onTap(){ 
    this.setState({isLogin:true}); 
} 

render(){ 
    if(this.state.isLogin){ 
     return <Main/>; 
    } 


    return(
     <View> 
      <TouchableOpacity 
       onPress={this.onTap} 
       style={styles.buttonContainer}> 
       <Text style={styles.buttonText}>LOGIN</Text> 
      </TouchableOpacity> 
     </View> 
    ) 
}}; 

bitte gehen falsch ~

+0

Ich bin mir nicht wirklich sicher, warum ich diesen Fehler bekomme: undefined ist keine Funktion (Bewertung 'this.setState ((isLogin: true))') – karmacollide

+0

Wenn ich ambind (this) wie folgt hinzufügen: onPress = {this.onTap.bind (this)}, verschwindet die Schaltfläche. – karmacollide

+0

Ich wollte vorschlagen, die Entwicklungswerkzeuge zu benutzen, um herauszufinden, was passiert, aber wenn Sie so neu sind, wie es von Ihrer Frage scheint, sollten Sie Dokumente lesen. – corse32

Verwandte Themen