我正在尝试根据数据类型执行不同的提取,但我总是得到相同的数据



我试图根据数据类型执行不同的提取,但我总是得到相同的数据。下面是我获取数据的代码:

Future.delayed(Duration.zero, () async {
if (widget.vrstaDokumenta == "Moji zadaci") {
var dokumenti =
await _dokumentiService!.getForApprovalByType(widget.tipId ?? 0);
}
if (widget.vrstaDokumenta == "Moji dokumenti") {
var dokumenti =
await _dokumentiService!.getMojiDokumentiByType(widget.tipId ?? 0);
}
var dokumenti =
await _dokumentiService!.getSharedDocumentsByType(widget.tipId ?? 0);
setState(() {
_dokumenti = dokumenti;
_dokumentiSearch = dokumenti;
isLoading = false;
});
});

我总是执行以下代码:

var dokumenti =
await _dokumentiService!.getSharedDocumentsByType(widget.tipId ?? 0);

如果有人能提供建议,请表示感谢。提前谢谢!

这样写,看看会发生什么:

if (widget.vrstaDokumenta == "Moji zadaci") {
var dokumenti =
await _dokumentiService!.getForApprovalByType(widget.tipId ?? 0);
}
else if (widget.vrstaDokumenta == "Moji dokumenti") {
var dokumenti =
await _dokumentiService!.getMojiDokumentiByType(widget.tipId ?? 0);
}else{
var dokumenti =
await _dokumentiService!.getSharedDocumentsByType(widget.tipId ?? 0);
}

基本上,您总是两次设置dokumenti的值,首先设置正确的值,然后通过调用_dokumentService.getSharedDocumentsByType((来覆盖它。也可以考虑将其封装在条件中。

然而,使用开关/案例将最适合你正在尝试做的事情。

switch(widget.vrstaDokumenta) {
case "Moji zadaci":
var dokumenti =
await _dokumentiService!.getForApprovalByType(widget.tipId ?? 0);
case: "Moji Dokumenti":
var dokumenti =
await _dokumentiService!.getMojiDokumentiByType(widget.tipId ?? 0);
default: 
var dokumenti =
await _dokumentiService!.getSharedDocumentsByType(widget.tipId ?? 0); 
}

考虑将switchcase语句封装在一个单独的函数中,使其更加干净。

我这样做了,现在它正在工作:

if (widget.vrstaDokumenta == "Moji zadaci") {
Future.delayed(Duration.zero, () async {
var dokumenti =
await _dokumentiService!.getForApprovalByType(widget.tipId ?? 0);
setState(() {
_dokumenti = dokumenti;
_dokumentiSearch = dokumenti;
isLoading = false;
});
});
}
if (widget.vrstaDokumenta == "Moji dokumenti") {
Future.delayed(Duration.zero, () async {
var dokumenti =
await _dokumentiService!.getMojiDokumentiByType(widget.tipId ?? 0);
setState(() {
_dokumenti = dokumenti;
_dokumentiSearch = dokumenti;
isLoading = false;
});
});
}
if (widget.vrstaDokumenta == "Podijeljeni") {
Future.delayed(Duration.zero, () async {
var dokumenti =
await _dokumentiService!.getSharedDocumentsByType(widget.tipId ?? 0);
setState(() {
_dokumenti = dokumenti;
_dokumentiSearch = dokumenti;
isLoading = false;
});
});
}

相关内容

  • 没有找到相关文章

最新更新