Ich probiere ReactJS aus, stoße aber in Schwierigkeiten, es in mein Formular einzufügen. Ich baue in ReactJS ein Auto-Suggest-Formular aus. In meinem onChangeQuery
setze ich den Zustand und rufe dann zu einer AJAX-Funktion auf, um Vorschläge von meinem serverseitigen Code zu ergreifen; Allerdings habe ich bemerkt, dass die loadGroupsFromServer
Funktion nicht den neuesten Stand bekommt ... Es ist ein Schlüsselstrich zu langsam. Ich weiß, setState ist nicht sofort, aber warum sollte ich dann setState für meine Formulare verwenden? Ist es besser, Refs zu verwenden? Lieber den Wert von e.target.value bekommen?ReactJS setState ist langsam
Hilfe!
var GroupForm = React.createClass({
getInitialState: function() {
return {query: "", groups: []}
},
componentDidMount: function() {
this.loadGroupsFromServer();
},
loadGroupsFromServer: function() {
$.ajax({
type: "GET",
url: this.props.url,
data: {q: this.state.query},
dataType: 'json',
success: function (groups) {
this.setState({groups: groups});
}.bind(this),
error: function (xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
onChangeQuery: function(e) {
this.setState({query: e.target.value})
this.loadGroupsFromServer();
},
render: function() {
return (
<div>
<form class="form form-horizontal">
<div class="col-lg-12">
<input type="text" className="form-control" value={this.state.query} placeholder="Search for groups" onChange={this.onChangeQuery} />
</div>
</form>
<GroupList groups={this.state.groups} />
</div>
)
}
})
Wenn Sie setState selbst aufrufen, sollten Sie nicht erwarten, dass dieser.Status sofort aktualisiert wird. –