2016-10-28 7 views
-1

Ich habe eine Funktion, die wie so durch einige Versprechungen und setState geht:Wie machen im Browser reagieren

}).then((future_users) => { 
     this.setState({future_users: future_users}); 
     console.log(this.state.future_users, 'tsf'); 
    }); 

diese ein Array von drei Objekten abmeldet viel weiter unten in meiner Render-Methode Ich habe

<p><span id="users"></span></p> 
{this.state.future_users.map(function(item){ 
    return (<span>{item}</span>); 
})} 

jedoch bekomme ich eine Fehlermeldung, Objects are not valid as a React child , wo ich sie in Strings oder so umwandeln kann?

+0

teilen Sie Ihre vollständigen Code –

Antwort

1

Wenn das, was du gesagt hast wahr ist, ein Array von Objekten ist, was future_users ist, dann Sie Sie versuchen zu tun <span> {object} <span> die nicht funktionieren, müssen Sie sie auf die Eigenschaft des Objekts einstellen, das Sie anzeigen möchten. zum Beispiel, wenn Ihr Benutzer eine userName Eigenschaft hat, können Sie tun:

<p><span id="users"></span></p> {this.state.future_users.map(function(item){ return (<span>{item.userName}</span>); })}

und es würde gut funktionieren. Sie können das Objekt selbst nicht in die Rendermethode einfügen.

+0

ja das ist schön. aber sie verketten sich alle an Stelle von. 123, 456, 789. Es macht 123456789. Ich würde sie am liebsten unterein- ander mögen. Wie kann ich das machen? –

+0

Das ist, weil ein Span ein Inline-Element ist, verwenden Sie stattdessen ein Div – finalfreq

0

Sie müssen überprüfen, ob this.state.future_users mit der geladenen Daten sind:

{this.state.future_users && this.state.future_users.map(function(item){ 
    return (<span>{item}</span>); 
})} 
+0

Dies würde nicht den Fehler abdecken, die er berichtet, was war, Objekte sind nicht gültig als React Kind eine Karte wird nur eine leere Array zurückgeben, wenn es nichts darin ist und reagieren wird nicht beschweren – finalfreq