【发布时间】:2021-07-18 00:57:21
【问题描述】:
我的代码
class _GenericTextFieldState extends State<GenericTextField> {
@override
Widget build(BuildContext context) {
return CupertinoTextField(
controller: textFieldController,
padding: EdgeInsets.all(8),
prefix: Icon(Icons.email_outlined),
placeholder: widget.hint,
);
}
}
final textFieldController = TextEditingController();
final textFieldProvider = Provider<String> ( (_) => textFieldController.text);
textFieldController 正在向 textFieldProvider 提供字符串。
我正在尝试使用消费者小部件在另一个文件中获取字符串
class LoadingButton extends ConsumerWidget {
LoadingButton(this.buttonName);
final String buttonName;
@override
Widget build(BuildContext context,ScopedReader watch) {
String textInput = watch(textFieldProvider);
return RoundedLoadingButton(
successColor: mainColor,
errorColor: Colors.orange,
height: 40,
color: mainColor,
child: Text(buttonName, style: TextStyle(color: Colors.white)),
controller: _btnController,
onPressed: (){
mLog("Input from provider username: $textInput");
},
);
}
}
但是,textInput 变量始终为空。
我错过了什么。
【问题讨论】: