You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何获取返回类型为(String?) => String?的字符串值

问题根源

你遇到的问题是onChanged回调的参数类型声明错误导致拿到了错误的对象:
FormFieldValidator<String>本身是函数类型,定义为String? Function(String? value),作用是传入待校验字符串返回校验错误信息,并不是输入框的实际输入值。

解决方案

方案1:修正回调参数类型

FXForm的email组件onChanged回调默认传递的参数就是当前输入框的实时字符串,直接把参数类型改为String?即可拿到邮箱值:

FXForm.email(
  context,
  labelText: "Email Address",
  controller: notifier.emailAddressController,
  onChanged: (String? inputEmail) => print(inputEmail),
),

方案2:直接通过绑定的控制器取值

你已经给组件绑定了notifier.emailAddressController,无需依赖回调参数,随时可以通过控制器的text属性拿到当前输入值:

FXForm.email(
  context,
  labelText: "Email Address",
  controller: notifier.emailAddressController,
  onChanged: (_) => print(notifier.emailAddressController.text),
),

内容的提问来源于stack exchange,提问作者Mark Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 23:06:05