flutter - 将代码分解为方法参数(Dart + Flutter + GetX)
问题描述
如何将“myEditMyProfileController.initFullName”和“myEditMyProfileController.tempFullName”分解为控制器是 GetxController 和 initFullName/tempFullName 是 String ...的方法参数?(我使用 GetX + Flutter + Dart)
Container buildEditProfileField(String myLabel, TextEditingController myTextEditingController )
{
return Container(
child: Padding(
padding: const EdgeInsets.only(bottom: 15),
child: GetBuilder<EditMyProfileController>(
init: EditMyProfileController(),
builder: (value) => TextFormField(
controller: myTextEditingController,
decoration: InputDecoration(
labelText: myLabel,
border: OutlineInputBorder(),
suffixIcon: myEditMyProfileController.initFullName != myEditMyProfileController.tempFullName ? Icon(Icons.update, color: Colors.teal) : null,
),
),
),
),
);
}
解决方案
设法解决了问题...
GetBuilder 需要包含要正确更新的方法调用。
GetBuilder<EditMyProfileController>(
init: controller,
builder: (_) {
return ListView(
scrollDirection: Axis.vertical,
shrinkWrap: true,
children: [
buildEditProfileField("Full name", controller.myFullNameController, controller.initFullName, controller.tempFullName),
],
);
}
),
TextFormField buildEditProfileField(String myLabel, TextEditingController myTextEditingController, String init, String temp)
{
return TextFormField(
controller: myTextEditingController,
decoration: InputDecoration(
labelText: myLabel,
border: OutlineInputBorder(),
suffixIcon: init != temp ? Icon(Icons.update, color: Colors.teal) : null,
),
);
}
推荐阅读
- c++ - 使用 C++ 动态分配 /dev/ttyUSB*
- node.js - Node.js - 使用 Google Cloud Vision API 从 PDF 文件中提取文本的问题
- java - Java Spoon API Object.hashCode()
- selenium - 使用 selenium 独立服务和 chrome 运行 wdio.conf.js 时获取 selenium 页面的 html 输出错误
- reactjs - 如何向 createMaterialTopTabNavigator(React Navigator)添加后退按钮?
- angular - 如何以角度创建弹出窗口
- r - `sym()` 对 tidyeval 有什么作用?
- r - R 安装以前的版本包 NAMESPACE 文件丢失
- hadoop - 如何在将 hive 作业提交到 dataproc 集群时执行 gcp 存储桶中的 hive 查询列表(在我的情况下为 gs:/hive/hive.sql")
- r - 顺序启动停止时间 R 之间的差异