【发布时间】:2021-07-20 10:48:02
【问题描述】:
我在该函数中有一个 Future 布尔函数,我使用 map 函数检查了一些数据。 if 和 else 两个条件都设置布尔变量为真。但它总是返回默认的 false 值。下面的代码是我的功能。
Future<bool> checkisShowablebydepend(Questions questions) async {
bool isDependvalue = false;
questions.dependFields.map((e) async {
bool isequal = (questions.dependValue.toLowerCase() ==
_formKey.currentState.fields[e].value.toLowerCase());
if (isequal) {
isDependvalue = true;
} else {
isDependvalue = true;
}
});
return isDependvalue;
}
这就是我从上述函数获取数据的方式。
Widget loadWidgets(Questions questions) {
if (questions.depend) {
return FutureBuilder<bool>(
future: checkisShowablebydepend(questions),
builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return new Text('Press button to start');
case ConnectionState.waiting:
return new Text('Awaiting result...');
default:
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
else
return new Text('Result: ${snapshot.data}');
}
});
} else {
return selectFormfield(questions);
}
}
【问题讨论】:
-
那是因为在 .map 函数结束之前调用了 return 尝试在 .map 函数中打印 isDependvalue
-
@MohamedInshaf - 我尝试在地图功能中打印,但没有显示
-
然后检查数据是否通过“问题”列表,尝试在地图功能之外打印它
-
而且你必须使用 await 来获取未来的数据
-
我使用 FutureBuilder 来获取这些数据,我添加的代码也请检查。
标签: flutter dart flutter-futurebuilder flutter-future flutter-functional-widget