[Fluth]ドキュメントの自動完了


目的
会社はアクセルでサッカーの試合のデータを受信し、数千件のデータを直接データベースに保存しており、運営の空挺が大きすぎる.
Excelにデータを追加しているパートタイムにDBとして配布できるWeb管理者ページを提供するために、Fluter 2.0から追加するAutocompleteコンポーネントを使用しました.
部品の使用は問題ありませんが、Post後に自動的に完了したFieldを初期化したいのですが、コントローラをパラメータとして単独で受け入れることはありません.
したがって、制御部品の方法を見つけるために、部品内部を表示および記録する.
内容
ソースコード
Autocomplete<String>(
	optionsBuilder: (TextEditingValue textEditingValue) {
    if (textEditingValue.text == '') {
    	return const Iterable<String>.empty();
    }
    return _kTeamNames.where((String option) {
	    return option.contains(textEditingValue.text);});
    },
    onSelected: (String selection) {
    	print('You select $selection');
    	homeTeamName.text = selection;
    	print('homeTeamName is ${homeTeamName.text}');
    },
    fieldViewBuilder: (context, controller,focusNode, onSubmit) {
	homeTeamName = controller;
        return TextFormField(controller: controller,focusNode: focusNode);
    },
),
AutoComplete内部ではTextFormFieldを使用します.
static Widget _defaultFieldViewBuilder(BuildContext context, TextEditingController textEditingController, FocusNode focusNode, VoidCallback onFieldSubmitted) {
    return _AutocompleteField(
      focusNode: focusNode,
      textEditingController: textEditingController,
      onFieldSubmitted: onFieldSubmitted,
    );
  }
TextFormFieldの実施部分
fieldViewBuilder: (context, controller,focusNode, onSubmit) {
// 콜백함수에서 컨트롤러를 받아서 미리 선언해둔 컨트롤러에 주입
	homeTeamName = controller;
        return TextFormField(controller: controller,focusNode: focusNode);
    },
コントローラせいぎょ
homeTeamName.clear();
n/a.結論
コントローラをパラメータにしていなかったので慌てましたが、うまく解決できてよかったです.