【发布时间】:2016-08-13 06:16:50
【问题描述】:
我有这个小sn-p代码:
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}
/>
)
}
在输入中输入第一个字母后,我希望在控制台“订阅就绪”输出中出现,但此输出仅在输入第二个字母后出现。换句话说,“订阅就绪”输出延迟到下一个字母输入。
例如,如果搜索字符串是“123”,则输入“123”将导致两个“订阅就绪”输出,而我预计会输出三个。
有没有办法解决这个问题?
【问题讨论】:
-
显示您的发布功能尝试在
中将“onChange”更改为“onKeyUp” -
问题出在发布上,
Meteor.publish('searchResults', function(query) { check(query, String); if (query.length >= 2) { let items = Items.find( { $text: { $search: query } }, { fields: { searchScore: { $meta: 'textScore' } }, sort: { searchScore: { $meta: 'textScore' } } } ); return items; } }); -
> 2 ;) 修复了什么?
-
我目前已删除 >=2 条件,我将在客户端检查
-
@IlanHasanov 请添加为答案,我会将其标记为已接受。