• 我正在寻找一种在用户停止输入X秒后发送API请求的方法.
  • 然而,我发送请求的方式是通过ContextChanged回调,它会在每次按键时发送请求
  • 我已经看到了在React中暂停的方法,但是,我对Flatter比较陌生,所以非常感谢您的帮助

推荐答案

您可以使用以下代码来执行此操作:

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 ....'
                ),
            );
    }
}

Dart相关问答推荐

Flutter - 对 Cloud Firestore 进行排序

angular.dart NgTwoWay 和 NgAttr 已弃用?

在启用 null 安全性的情况下,如何在 Iterable.firstWhere 中从 orElse 返回 null?

如何从 Dart 中的映射中过滤空值

Dart 1.8 中的异步/等待功能

替换 Flutter 中的片段等小部件

Flutter Text 小部件中的 StrutStyle 是什么

如何在 Flutter CustomPainter 中使用Bezier Curves绘制形状

将Dart嵌入到应用程序中

如何在Flutter 的http.MultipartRequest请求上上传文件时获取进度事件

如何在 flutter 中对json进行字符串化

GestureDetector onTap 卡

Dart:实例变量在私有类中应该是私有的还是公共的?

Error: The argument type "String?"can't be assigned to the parameter type"String" because "String?"s nullable and "String"isn't

如何在 Dart 中将 UTF-8 字符串转换为字节数组?

如何从 Dart 中的 forEach 循环返回?

在dart中获取列表的最后一个元素

Dart - 如何对 Map 的键进行排序

Dart 中的函数重载

在 Dart 中是否有一种将 int 转换为 double 的快速方法?