Ich habe diesen kleinen Code-Schnipsel:Meteor Reagieren Abonnement Verzögerung
getSearchQuery(evt) {
let query = evt.target.value;
Meteor.subscribe('searchResults', query, function() {
console.log('subscription ready');
});
}
render() {
return (
<TextField
hintText='Hint text'
onChange={this.getSearchQuery.bind(this)}
fullWidth={true}
/>
)
}
Nach dem ersten Buchstaben in der Eingabe eingeben I in der Konsole ‚Abonnement bereit‘ Ausgang erwarten, aber diese Ausgabe erscheint erst nach dem zweiten Buchstaben eingeben. Mit anderen Worten, der 'Abonnement bereit' -Ausgang verzögert sich bis zur nächsten Buchstabeneingabe.
Zum Beispiel, wenn die Suchzeichenfolge '123' ist, wird die Eingabe von '123' zu zwei 'abonnementbereiten' Ausgaben führen, während ich auf drei erwarte.
Ist es möglich, dieses Problem irgendwie zu beheben?
Zeigen Sie Ihre versuchen veröffentlichen Funktion "onChange" auf "onKeyUp" inside –
Das Problem war mit der Veröffentlichung zu ändern, '' 'Meteor.publish ('search', function (Abfrage) { Prüfung (Abfrage, String); if (query.length> = 2) { lassen items = Items.find ( {$ text: { $ Suche: Abfrage } }, { Felder: { searchScore: { $ meta: ‚textScore ' } }, Sortierung: { searchScore: { $ meta: 'textScore' } } } ); Rücksendungen; } }); '' ' – torayeff
> 2;) ist was behoben? –