Text 如何在ModalRoute上设置state()?

Text 如何在ModalRoute上设置state()?,text,flutter,dart,refresh,navigator,Text,Flutter,Dart,Refresh,Navigator,我用flatter写了一个应用程序。我想更改字符串变量的状态。设置字符串变量的状态后,ModalRoute弹出菜单不会显示已更改的变量。如果我关闭ModalRoute弹出菜单并再次打开它,我可以看到已更改的变量 我试图弹出上下文,但我想在弹出菜单上进行更改。我有自己的覆盖小部件 类MyOverlay扩展了ModalRoute{ ... } //这是我的主要任务。省道: 列表类别=[“请”、“帮助”、“我”]; 字符串_selectedCategory='category'; //这就是弹出菜单

我用flatter写了一个应用程序。我想更改字符串变量的状态。设置字符串变量的状态后,ModalRoute弹出菜单不会显示已更改的变量。如果我关闭ModalRoute弹出菜单并再次打开它,我可以看到已更改的变量

我试图弹出上下文,但我想在弹出菜单上进行更改。我有自己的覆盖小部件


类MyOverlay扩展了ModalRoute{
...
}
//这是我的主要任务。省道:
列表类别=[“请”、“帮助”、“我”];
字符串_selectedCategory='category';
//这就是弹出菜单的开始
浮动操作按钮:浮动操作按钮(
孩子:。。。,
已按下:(){
_showPopup(上下文,_popubody(),'Add');
},
),
_showPopup(BuildContext上下文、小部件小部件、字符串标题,{BuildContext popupContext}){
导航器。推(
上下文
麦弗雷(
...
已按下:(){
试一试{
Navigator.pop(上下文);//关闭弹出窗口
}捕获(e){
印刷品(e);
}
},
...
主体:小部件,
) ...
);
}
小部件_popubody(){
...
弹出菜单按钮(
//这是一个问题,当我选择
子项:文本(“$\u selectedCategory”),
itemBuilder:(构建上下文){
返回categories.map((字符串选择){
返回PopupMenuItem(
价值:选择,
儿童:文本(选择),
);
}).toList();
},
onSelected:\u选择类别,
),
...
}
void\u选择类别(字符串类别){
设置状态(()=>this.\u selectedCategory=category);
}

如果我选择PopupMenuItem,文本小部件不会更改。

我也有同样的问题,我暂时使用changedExternalState()修复了这个问题;强迫重建,但我认为这可能不是最好的

例如:

CheckboxListTile(
              value: _checkboxValue,
              title: Text(phone),
              onChanged: (value){
                _checkboxValue = value;
                //Fix
                changedExternalState();
              },
            )

哦,从未见过ChangedTernalState方法。看起来像黑客的解决方案,太棒了!如何使用此方法?@I_User-我想要一个按钮来更新我的ModalRoute。我把那个按钮做成了一个有状态的小部件,在构造函数中有一个bool。。然后,我将在ModalRoute中更新的bool传递到该按钮中,当bool被更改时,我将使用新值调用setState,然后调用“changedEnternalState();”——就像上面的示例一样,我也面临着同样的问题。。你能找到解决办法吗?