如何从另一个小部件更新小部件树 class - Flutter
How to update widget tree from another widget class - Flutter
当一个变量发生变化时,我面临重新呈现页面的问题 class/widget(父小部件和子小部件都是有状态的 classes)。
事情是这样的:
我将三个按钮合二为一 class,它可以更改变量状态 (foodCategory)。
int foodCategory = 0;
// down in the elevated button body - i am updating the variable
setState(() {
foodCategory = 1;});
在另一个小部件中,我使用此变量执行某些操作:
for (var item in foodItems.values.elementAt(foodCategory))
GestureDetector(........ and so on...
但是在第二个片段中,小部件不知道是否有变化并且它不会再次调用 buildcontext ...
我不确定如何克服这个问题。我试过 valuelistenablebuilder 但没有成功。也许我不知道如何在循环中使用它(我将 foodcategory 用作 int(迭代器))。
碰巧我用错了 valuelistenable builder。
很简单。只需将变量和更改标记为 valueNotifier。就我而言,我需要将 foodCategory 标记为 valueNotifer。
然后,我需要将小部件(在我的例子中是列小部件)包装为 ValueListenableBuilder。这解决了我的问题。
当一个变量发生变化时,我面临重新呈现页面的问题 class/widget(父小部件和子小部件都是有状态的 classes)。
事情是这样的: 我将三个按钮合二为一 class,它可以更改变量状态 (foodCategory)。
int foodCategory = 0;
// down in the elevated button body - i am updating the variable
setState(() {
foodCategory = 1;});
在另一个小部件中,我使用此变量执行某些操作:
for (var item in foodItems.values.elementAt(foodCategory))
GestureDetector(........ and so on...
但是在第二个片段中,小部件不知道是否有变化并且它不会再次调用 buildcontext ... 我不确定如何克服这个问题。我试过 valuelistenablebuilder 但没有成功。也许我不知道如何在循环中使用它(我将 foodcategory 用作 int(迭代器))。
碰巧我用错了 valuelistenable builder。
很简单。只需将变量和更改标记为 valueNotifier。就我而言,我需要将 foodCategory 标记为 valueNotifer。
然后,我需要将小部件(在我的例子中是列小部件)包装为 ValueListenableBuilder。这解决了我的问题。