我想創建一個多螢屏/多部分表單向導,每個螢屏包含:
- 一個問題
- 幾個不同的控制元件(文本、單選按鈕等)允許他回答問題

我想將答案的狀態保存到遠程服務器。對于簡單的單選按鈕(每當用戶更改其值時)。
但是文本欄位呢?我不想在每次字符更改時更新服務器,但另一方面,如果用戶退出螢屏或應用程式關閉/進入后臺,我不想丟失資料......
從文本欄位中保存資料的最佳方法是什么?燦撲動的形式幫助我嗎?
uj5u.com熱心網友回復:
正如評論所暗示的那樣,您可以為此使用去抖器。創建一個 debouncer 非常簡單:
import 'package:flutter/foundation.dart';
import 'dart:async';
class Debouncer {
final int delay;
late VoidCallback action;
Timer? _timer;
Debouncer({required this.delay});
run(VoidCallback action) {
if (_timer != null) {
_timer?.cancel();
}
_timer = Timer(Duration(milliseconds: delay), action);
}
cancel() {
_timer?.cancel();
}
}
并使用它在某處定義它然后執行:
yourDebouncer.run(() async {sendData(...)})
我建議您使用 .onchange 方法發送資料TextField。這樣您的用戶資料將被保存,您的服務器肯定不會不堪重負。不要忘了取消對Debouncer你的dispose方法。
@override
void dispose() {
_d.cancel();
yourDebouncer.dispose();
}
你可能想看看這個,如果你想了解如何實作更多的細節Debouncer。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386344.html
上一篇:Cordova插件變數
