用户停止输入后,是否可以发送请求? [英] Is there a way to send a request after the user has stopped typing?

查看:63
本文介绍了用户停止输入后,是否可以发送请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  • 我正在寻找一种在用户停止输入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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆