flutter - 如何在颤动中将输入值从扩展的子小部件返回到父小部件
问题描述
我无法理解如何将输入信息从扩展的子小部件传递回其父小部件。我试图在父小部件中创建一个设置器,但我无法通过“ParentWidget.of(context).setterName”调用它。
将用户输入信息从子窗口小部件传回父窗口的最佳方式是什么?
谢谢你的帮助
class SignInMobilePortrait extends StatefulWidget {
@override
_SignInMobilePortraitState createState() => _SignInMobilePortraitState();
}
class _SignInMobilePortraitState extends State<SignInMobilePortrait> {
//text field state
String _email = '';
set email(String value) => setState(() => _email = value);
...
LoginCredentials(),
...
}
class LoginCredentials extends StatelessWidget {
LoginCredentials({
Key key,
}) : super(key: key);
Widget build(BuildContext context) {
return Container(
...
onChanged: (value) {
//CHANGE EMAIL VALUE HERE;
},
...
}
解决方案
正确的方法是TextEditingController
从SignInMobilePortrait
down 传递到LoginCredentials
:
class _SignInMobilePortraitState extends State<SignInMobilePortrait> {
final _emailController = TextEditingController();
LoginCredentials(_emailController),
...
// Access _emailController.text somewhere
}
class LoginCredentials extends StatelessWidget {
final TextEditingController controller;
LoginCredentials({
Key key,
@required this.controller,
}) : super(key: key);
Widget build(BuildContext context) {
return TextField(
...
controller: controller,
}
推荐阅读
- matlab - 将 Matlab 基于问题的公式转换为基于求解器的公式中的 ILP 变量映射
- r - 指定 R doParallel 的核心数
- python - 无法在 python 中启动 h2o - 但它适用于 R - 连接被拒绝
- python - 乳清使用 numpy.save/numpy.load 将浮点数组的 numpy 数组保存到 .npy 文件,数组的顺序会改变有什么原因吗?
- javascript - array.forEach 有效,但当我在里面嵌套另一个时无效
- java - 画布错误地在表 itext7 中绘制高度单元格
- php - 如何通过 php 在 mailchimp API 中包含消息正文
- apache - 为什么子文件夹中的 htaccess 规则会阻止父 htaccess 规则工作?
- vba - MSWord 上的 VBA:SAPI.SpVoice 对象是否有发言结束的事件?
- .htaccess - htaccess 重定向不起作用 - 重定向到错误的页面