我正在使用ble manager来打开和关闭蓝牙,但是当我移动开关时,它仍处于初始状态,并且不执行if条件。
body:Switch(value: state,
onChanged: (bool s)async{
state=s;
if(s==true){
print("is true");
await Future.delayed(Duration(seconds:3));
initState();
_bleManager.enableRadio();
}else{
print("is false");
_bleManager.disableRadio();
}
}
)
答案 0 :(得分:1)
根据提供的代码,您需要进行一些更改:
1。。要更改state
变量,您需要调用setState
,因此请使用以下方法代替state=s
:
setState(() {
state = s;
});
2。。请勿在构建函数内调用initState()
。
Switch(value: state,
onChanged: (bool s)async{
setState(() {
state = s;
});
if (s == true) {
print("is true");
await Future.delayed(Duration(seconds:3));
_bleManager.enableRadio();
} else{
print("is false");
_bleManager.disableRadio();
}
}
),