2017-01-12 1 views
19

Ich erhalte einen unteren Fehler. Ich kann sehen, dass ich Array anstelle von Objekt zurückgeben muss. Aber ich bin mir wirklich nicht sicher, wie ich das beheben soll. Vielen Dank im VorausObjekte sind nicht gültig als React Kind

Objekte sind nicht als reagierendes Kind gültig. Wenn Sie eine Sammlung von untergeordneten Elementen rendern möchten, verwenden Sie stattdessen ein Array oder wickeln Sie das Objekt mithilfe von createFragment (Objekt) aus den React-Add-Ons um. Überprüfen Sie die Rendermethode von View.

constructor(props){ 
    super(props); 
    this.state = {timeElapsed: null}; 
    } 

startStopButton(){ 
    return <TouchableHighlight underlayColor="gray" onPress={this.handleStartPress.bind(this)}> 
     <Text>Start</Text> 
     </TouchableHighlight> 
    } 

handleStartPress(){ 
     var startTime = new Date(); 




     setInterval(()=>{ 
     this.setState({timeElapsed: new Date()}) 
     }, 1000); 
    } 
render(){ 
return(
    <View style={styles.container}> 
    <View style={[styles.header]}> 
     <View style={[styles.timerContainer, this.borderColor('#ff6666')]}> 
     {this.state.timeElapsed} 
     </View> 
     <View style={[styles.buttonsContainer, this.borderColor('#558000')]}> 
     {this.startStopButton()} 
     {this.lapButton()} 
     </View> 
    </View> 
    </View> 
); 


} 
+0

Können Sie zeigen Ihre Methode machen? –

+0

Sie zeigen nichts, was uns helfen könnte, es zu debuggen, die Render-Methode wäre dort, wo ich anfange. – theBrezilien

+0

Hi Ich habe gerade render Methode hinzugefügt. Danke – Mesmerize86

Antwort

25

timeElapsed ist ein Objekt, React nicht weiß, wie dies zu machen:

<View style={[styles.timerContainer, this.borderColor('#ff6666')]}> 
    {this.state.timeElapsed} 
    </View> 

Versuchen this.state.timeElapsed für eine Zeichenfolge wie zum Beispiel Wechsel:

<View style={[styles.timerContainer, this.borderColor('#ff6666')]}> 
    {this.state.timeElapsed.toString()} 
    </View> 
+0

Danke Emilio für Erklärung und Beispiel. Es hat für mich funktioniert. Es gibt noch einen Fehler, den ich hatte, aber ich habe es gelöst. Aber ich bin mir nicht sicher, warum es funktioniert. – Mesmerize86

+0

Ich installiere Plugins von Drittanbietern in Minuten-Sekunden-Millisekunden und verpacke timeElapsed. '{formatTime (this.state.timeElapsed)}'

 'handleStartPress(){ var startTime = new Date(); setInterval(()=>{ console.log(this.setState({timeElapsed : new Date()})); this.setState({timeElapsed: new Date()}) }, 30); }'
Jetzt bekomme ich meine timeElapsed undefined. – Mesmerize86

0
<Note note={ 
<p>{(new Date(updated_at)).toString()}</p> 
} /> 

In diesem Fall ist Note meine untergeordnete Komponente und ich hatte das Datum wie oben angegeben und es hat für mich funktioniert.

Ausgabe Pass date to React Child

Verwandte Themen