我曾在一个Flutter程序,但我有一个问题,我不能解决,在showModalBottomSheet的小部件不更新时,我做一个setState();
我已经在BottomSheet小部件中看到过类似的问题,但我需要showModalBottomSheet
我想向你指出,我有一个DraggableScrollableSheet在我的showModalBottomSheet,一旦我关闭和重新打开的小部件正在更新,但我希望小部件立即更新
你能帮我解决吗?
Thanks in advance
我试着做同样的原则作为BottomSheet但它没有工作
2条答案
按热度按时间ezykj2lf1#
使用
StatefulBuilder
将您要调用的小部件 Package 在底部工作表中。l3zydbqr2#
在使用
setState()
时,您似乎遇到了在showModalBottomSheet
中更新小部件的问题。要解决此问题,您可以尝试以下修复程序:首先,确保您在正确的位置调用
setState()
。确保它被放置在您希望小部件更新的位置,而不是在build()
方法之外。其次,检查您要更新的小部件是否是
setState()
Package 的小部件的直接子部件。如果它嵌套得更深,则可能需要使用回调函数或状态管理方法(如Provider
或Bloc
)将更新的数据向下传递到小部件树。如果您要更新的小部件不在
setState()
的范围内,您可以使用GlobalKey
强制重建该特定小部件。为小部件分配GlobalKey
并使用key.currentState.setState(() {})
触发重建。最后,确保您在
setState()
中更新的数据正确传递到需要更新的小部件。仔细检查数据是否按预期进行修改。我已经看到了很多使用它像下面这样,但我认为这是不正确的方式,如果你需要顶部重建ui直接:
不正确
字符串
正确
型