如何重建小部件



我正在开发电子商务应用程序在扑动,在主屏幕我有一个一般的页面,但有类别在这里:

主屏幕

所以当我点击每个类别时,整个屏幕应该重新构建并更改为类别项小部件。

我有一个方法,每次用户点击一个类别的屏幕将重新建立:

void _switchToCategories(String categoryValue) {
setState(() {
_categoryScreen = true;
category = categoryValue;
});
}

所以我有一个条件当屏幕被构建

(_categoryScreen)?
ProdcutsPerCategory(category: category): 
other column

但是有一个问题,produccutspercategory小部件只构建一次,第一个类别被选中,

这意味着即使我选择了另一个类别,小部件也不会重新创建并给我该类别产品。我也使用setState()

任何想法?

我遇到了完全相同的问题,我做了一些工作,但首先让我解释一下我认为发生了什么,你使用相同的小部件ProdcutsPerCategory并改变传递的参数,所以dart渲染相同的旧对象,将其标记为相同,我的工作是为每种类别创建一个小部件,并将其放在list

中。
List<Widgets> listOfCatigory = [ProdcutsPerCategory(cat1),ProdcutsPerCategory(cat3),ProdcutsPerCategory(cat3)]

那么示例代码应该是这样的

// default widget
var widget catWidget = listOfCatigory[0];
void _switchToCategories(int selectedIndex) {
setState(() {
_categoryScreen = true;
catWidget = listOfCatigory[selectedIndex];
});
}

并像这样渲染

(_categoryScreen)?
catWidget: 
other column

也许在您的ProdcutsPerCategory小部件中,您在initState中使用类别(这只能发生一次)…有了更多的代码,我们可以更轻松地帮助您!

相关内容

  • 没有找到相关文章

最新更新