用户停止输入后,是否可以发送请求? [英] Is there a way to send a request after the user has stopped typing?
本文介绍了用户停止输入后,是否可以发送请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
- 我正在寻找一种在用户停止输入X秒钟后发送API请求的方法.
- 我发送请求的方式是通过onTextChanged回调,但是,该回调在每次按键时都会发送一个请求
- 我在React中已经看到了解决超时的方法,但是,我比较陌生,所以我们将不胜感激
推荐答案
您可以使用以下代码执行此操作:
you can use the below code to do this:
import 'package:flutter/material.dart';
import 'dart:async';
class Test extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _TestState();
}
}
class _TestState extends State<StatefulWidget> {
Timer searchOnStoppedTyping;
_onChangeHandler(value ) {
const duration = Duration(milliseconds:800); // set the duration that you want call search() after that.
if (searchOnStoppedTyping != null) {
setState(() => searchOnStoppedTyping.cancel()); // clear timer
}
setState(() => searchOnStoppedTyping = new Timer(duration, () => search(value)));
}
search(value) {
print('hello world from search . the value is $value');
}
@override
Widget build(BuildContext context) {
return TextField(
onChanged: _onChangeHandler,
decoration: InputDecoration(
hintText: 'Search ....'
),
);
}
}
这篇关于用户停止输入后,是否可以发送请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文