Ich arbeite derzeit mit der Soundcloud-API und versuche, die zurückgegebenen Benutzer in einem Array zu speichern, und setze dann das Array auf das übergeordnete Objekt. Das Problem ist, wenn ich console.log den aktualisierten Zustand zeige es zeigt ein Array aber es ist leer. Im Folgenden ist ein Beispiel für meine Code:Hinzufügen eines Arrays zum Status der übergeordneten Komponente
var SearchBar = React.createClass({
getInitialState: function(){
return {search : '',
avatar : '',
}
},
onChange: function(e){
e.preventDefault();
this.setState({search: e.target.value});
console.log('does this work', this.state.search)
},
onClick: function(e){
e.preventDefault();
},
getData: function(){
var userAv = [];
SC.get('/users', { q: this.state.search, limit: 10 }, function(users){
_.each(users, function(obj){
userAv.push(obj);
});
console.log('What is userAv', userAv);
})
this.setState({ avatar: userAv}, function(){
console.log('What is this.state.avatar', this.state.avatar)
});
},
render: function(){
return (
<div id='search-container'>
<input
onChange={this.onChange}
id='search-bar'
type = 'text'
value={this.state.search}
placeholder = 'Search For Artist here'
/>
<button
id="search-button"
onClick={this.getData}
type = 'button'>
Submit
</button>
<UserList />
</div>
)
}
});
Die einzige Aktualisierung von 'this.state.search' erfolgt mit' e.target.value() '. Ich sehe nicht wo du machst 'setState ({search:}'. Oder versuchst du avatar zu aktualisieren? –
Ich versuche Avatar zu aktualisieren – DLF85
Ich verstehe. Nun, in jedem Fall, beachte das '' Tags sind [speziell in React] (https://facebook.github.io/react/docs/forms.html) und müssen anders behandelt werden als reguläre Elemente Dies könnte auch Auswirkungen auf Ihr Programm haben. –