我收到此错误
不能将类型“ Future”的值分配给 类型为“ double”的变量。 因为我们不能在initState()方法中使用assync。
class _SettingsState extends State<Settings> {
bool _isSwitched = false;
double _sliderValue = 0;
@override
void initState() async {
_sliderValue = _getInterval();
super.initState();
}
...
Future<double> _getInterval() async { ...
但是,如果我们尝试在initState()中使用await,那么我们将得到消息
而不是直接在内部等待异步工作 initState,调用一个单独的方法无需等待即可完成此工作 它。
如何在initState中使用_getInterval,即从中获取将来的值,而无需等待它?
答案 0 :(得分:1)
如果要运行这段代码_sliderValue = _getInterval();
,可以将其放在单独的方法中
void myMethod() async{
_sliderValue = await _getInterval();
}
然后在initState
方法中调用它,如下所示:
@override
void initState() async {
super.initState();
myMethod();
}
答案 1 :(得分:1)
只需调用_getInterval
方法而不等待它并将其更改为,而不是返回方法末尾将其分配给_sliderValue
的值(可能还会调用setState
)< / p>