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
相关产品推荐
相关产品推荐

