gpt4 book ai didi

flutter - "This function has a return type of ' 小部件 ', but doesn' 以返回语句结束。”

转载 作者:行者123 更新时间:2023-12-03 03:04:53 26 4
gpt4 key购买 nike

@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: slides,
initialData: [],
builder: (context, AsyncSnapshot snap) {
List slideList = snap.data.toList();
return PageView.builder(
controller: ctrl,
itemCount: slideList.length + 1,
itemBuilder: (context, int currentIdx){
if (currentIdx == 0) {
return _buildTagPage();
}
else if (slideList.length >= currentIdx){
bool active = currentIdx == currentPage;
return _buildStoryPage(slideList[currentIdx - 1], active);
}
}
);
},
);
}

这是 Reflectly 应用程序克隆的摘录,我在 (context, int currentIdx) { 中遇到错误.

我假设我必须在某处添加一个 return 语句,但不知道在哪里做。

最佳答案

这里的问题是 if - else if组合不是详尽的 ,这意味着在某些情况下,两个条件都不满足,因此没有一个代码块被执行。

但是, itemBuilder 指定 Widget需要从回调中返回。因此,您会看到错误。

要解决它,您可以添加 else声明 if - else组合详尽并从两者返回,或者您可以添加 return最后,如果之前没有返回任何内容,则始终会到达;

    controller: ctrl,
itemCount: slideList.length + 1,
itemBuilder: (context, int currentIdx){
if (currentIdx == 0) {
return _buildTagPage();
} else if (slideList.length >= currentIdx) {
bool active = currentIdx == currentPage;
return _buildStoryPage(slideList[currentIdx - 1], active);
}

return Text('No slide availabe.');
}
);

如您所见,我在最后添加了一个 return 语句,它将向用户显示一条消息。

关于flutter - "This function has a return type of ' 小部件 ', but doesn' 以返回语句结束。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58663218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com