我实施了
Algolia
在我的项目中,就像在这个
example
(没有过滤器)并且它正在工作。
现在我想添加一个
去跳动
所以我不搜索每一个关键笔划,而是等待500毫秒直到搜索。如果用户键入另一个字母,则该计时器将重置。
我正在使用建议的
HitsSearcher
它有一个
debounce
字段,但改变了它,对我来说并没有什么改变。结果仍然会立即显示出来。
我还试着用计时器来实现这一点,这会导致暂停,但在暂停之后,只要有新的更改出现,它就会被触发。所以计时器实际上永远不会被取消。
在我的
init
:
_searchTextEditingController.addListener(
() => _startTimer(),
);
和
_startTimer()
:
_startTimer() {
_timer = Timer(
const Duration(milliseconds: 2000),
() {
print('finished');
_userSearcher.applyState(
(state) => state.copyWith(
query: _searchTextEditingController.text,
page: 0,
),
);
},
);
}
那么我该如何做到这一点呢?我这样做是为了减少algolia上的搜索请求。
如果你需要更多信息,请告诉我!
编辑
这个问题不是由建议的问题解决的。Debounce工作不正常,给了我错误的搜索结果。