flutter 正文可能正常完成,导致返回“null

a14dhokn  于 2022-12-30  发布在  Flutter
关注(0)|答案(2)|浏览(194)
body: FutureBuilder(
  future: determinePosition(),
  builder: (context, snapshot) //error here{
  if (snapshot.connectionState == ConnectionState.waiting) {
  return CircularProgressIndicator();
  } else if (snapshot.hasError) {
  return Text("Error ");
  }else if(snapshot.hasData){
return Column(
children: [
Text(currentAddress),

正文可能正常完成,导致返回“null”,但返回类型"Widget“可能是不可为null的类型。为什么会出错?请帮助我

x4shl7ld

x4shl7ld1#

可能的解决方案是删除最后一个else if(即snapshot.hasData)并直接返回列,如下所示

body: FutureBuilder(
  future: determinePosition(),
  builder: (context, snapshot) //error here{
  if (snapshot.connectionState == ConnectionState.waiting) {
  return CircularProgressIndicator();
  } else if (snapshot.hasError) {
  return Text("Error ");
  }
return Column(
children: [
Text(currentAddress),
ds97pgxw

ds97pgxw2#

问题是你使用的是else if而不是else,通过使用 else if,你告诉Dart遵循这组条件,但是如果有another条件?,它不会被处理,并且将返回null,那该怎么办?
要解决此问题,请在最后一个子句中使用else而不是 else if

FutureBuilder(
            future: determinePosition(),
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.waiting) {
                return CircularProgressIndicator();
              } else if (snapshot.hasError) {
                return Text("Error ");
              } else {
                return Column(
                  children: [
                    Text('test'),
                  ],
                );
              }
            })

相关问题