我想要开关的当前状态。我尝试过,但遇到了一个错误类型"Future"不是类型"bool"的子类型。提前感谢
statusonoff( Device device) async {
DocumentSnapshot variable = await Firestore.instance
.collection('device-configs')
.document(device.id)
.get();
return variable.data['value']['on'];
CustomSwitch(
activeColor: Colors.green,
value: statusonoff(context, device),
onChanged: (value) async {
DocumentSnapshot variable = await Firestore.instance
.collection('device-configs')
.document(device.id)
.get();
print(variable.data['value']['on']);
setState(() {
if (variable.data['value']['on'] == false) {
value = true;
_configMode = "on";
_updateDeviceConfig(context, device);
} else if (variable.data['value']['on'] == true) {
value = false;
_configMode = "off";
_updateDeviceConfig( device);
}
status = value;
});
},
),
因为方法statusonoff
返回一个future,标记为async
,它现在将返回一个类型的Future<T>
,而CustomSwitch
的value
属性需要一个布尔值。这就是为什么你会出现这个错误。
要解决此问题,只需在statusonoff(context, device)
前面加上await
。
CustomSwitch(
activeColor: Colors.green,
value: await statusonoff(context, device),
//.....