flutter - 如何将值动态传递到 Flutter 中的自定义复选框小部件
问题描述
所以我正在尝试为我正在构建的表单创建一个自定义复选框行,但我不想将代码复制超过 50 次(是/否问题的总数)
我尝试创建一个自定义复选框行小部件,借此我传入我想分配给复选框的布尔值(yesValue 和 noValue),但颤动只是不允许勾选复选框。
如果我删除传递给小部件的“yesValue”并硬编码该布尔值,它就可以工作。
我只想能够轻松地使用我的自定义复选框行,而不必一遍又一遍地编写几乎相同的东西。这是我的代码:
Widget _buildCheckboxRow(String text, String yesString, bool yesValue, String noString, bool noValue) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(text, style: TextStyle(color: bluePurple),),
Row(
children: <Widget>[
Text(
'Yes',
),
Checkbox(
activeColor: bluePurple,
value: yesValue,
onChanged: (bool value) => setState(() {
yesValue = value;
if(!widget.edit) _databaseHelper.updateTemporaryTransferReportField({yesString : GlobalFunctions.boolToTinyInt(value)}, user.uid, widget.jobId);
if (noValue == true){
noValue = false;
if(!widget.edit) _databaseHelper.updateTemporaryTransferReportField({noString : 0}, user.uid, widget.jobId);
}
})),
Text(
'No',
),
Checkbox(
activeColor: bluePurple,
value: noValue,
onChanged: (bool value) => setState(() {
noValue = value;
if(!widget.edit) _databaseHelper.updateTemporaryTransferReportField({noString : GlobalFunctions.boolToTinyInt(value)}, user.uid, widget.jobId);
if (yesValue == true){
yesValue = false;
if(!widget.edit) _databaseHelper.updateTemporaryTransferReportField({yesString : 0}, user.uid, widget.jobId);
}
}))
],
)
],
);
}
解决方案
推荐阅读
- sharepoint - 在 QnA Maker 知识库中导入 Sharepoint 页面不起作用
- spring-integration - Spring 集成 - 无法在 BeanFactory 中查找名称为“55774d05-e054-4b71-bc7e-ecc53d029e75:20”的 MessageChannel
- python - Python 代码作为脚本在 ipython 中运行,但在 jupyter-notebook 中抛出错误
- angular - 获取动态构建的反应形式的第一个值
- here-api - HERE 地图 - 卡车限制
- r - 如何在 R 中更广泛地旋转 NoSQL 数据
- python - 如何在客户端机器上执行 python 脚本?
- flutter - 如何在 Visual Studio 代码中从颤振项目创建自己的 sdk
- cytoscape.js - 在 Cytoscape 中的节点内键入文本
- apache-kafka - 有人在使用 Kafka 进行蓝绿部署时遇到过问题吗?