flutter - 类String在flutter中没有实例getter
问题描述
我得到一个错误
Exception caught by gesture
Class 'String' has no instance getter 'status'
Receiver: 'Under PUI'
Tried calling: status
当我选择我的单选按钮时。我从 firebase 得到这个单选按钮。请在下面查看我的代码:
class HealthStatusList extends StatefulWidget {
@override
_HealthStatusState createState() => _HealthStatusState();
}
class _HealthStatusState extends State<HealthStatusList> {
List<HealthStatus> healthStatusList = new List<HealthStatus>();
HealthStatus selectedHealthStatus;
@override
Widget build(BuildContext context) {
final healthStatuses = Provider.of<QuerySnapshot>(context);
// print(healthStatuses.documents);
for (var doc in healthStatuses.documents) {
int pos = doc.data['position'];
String sts = doc.data['status'];
String stc = doc.data['statusCode'];
HealthStatus hs =
new HealthStatus(position: pos, status: sts, statusCode: stc);
healthStatusList.add(hs);
print(doc.data['position']);
}
setSelectedHealthStatus(HealthStatus hs) {
setState(() {
selectedHealthStatus = hs;
});
}
List<Widget> createRadioListeners() {
List<Widget> widgets = [];
for (HealthStatus hs in healthStatusList) {
widgets.add(RadioListTile(
value: hs.status,
groupValue: selectedHealthStatus,
title: Text(hs.status),
onChanged: (currentStatus) {
print("Current Status ${currentStatus.status}");
setSelectedHealthStatus(currentStatus);
},
selected: selectedHealthStatus == hs,
activeColor: Colors.green,
));
}
return widgets;
}
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
padding: EdgeInsets.all(20.0),
child: Text('How are you feeling?'),
),
Column(
children: createRadioListeners(),
)
],
),
);
}
}
这是 HealthStatus 类
class HealthStatus {
final int position;
final String status;
final String statusCode;
HealthStatus({this.position, this.status, this.statusCode});
@override
String toString() {
// TODO: implement toString
return status;
}
}
当我选择单选按钮时,我应该得到字符串“状态”字符串。
此外,当我单击单选按钮时,我没有看到我选择的单选按钮上的点。你能指出我做错了什么吗?谢谢你。
解决方案
这个:
selected: selectedHealthStatus == hs,
应该
selected: selectedHealthStatus == hs.status,
推荐阅读
- javascript - 如何在 jquery ajax 中调用 thingspeak api
- ios - 如何在 Firebase 中查询具有特定用户 ID 的对象
- google-apps-script - 重复行表中的唯一特征计数
- tensorflow - 为什么这个简单的 CNN 突然失败了?
- angular - angular6惰性模块在ProvideRoutes中询问路径
- angular - Angular 6 中的视图未更新
- javascript - 使用 javascript 自动链接页面上的短语
- performance - 循环通过边缘 (x,y) 的 df 来添加属性 - 太慢了
- python - 使用 Numpy 进行大规模矩阵乘法
- cuda - 将数据从寄存器复制到全局内存