flutter - Flutter 将状态数据传递给函数
问题描述
我正在尝试修改showDialog
函数之外的状态。这是我现有的代码:
showDialog(
context: context,
builder: (context) {
String contentText = "Content of Dialog";
return StatefulBuilder(
builder: (context, setState) {
return AlertDialog(
title: Text("Title of Dialog"),
content: Text(contentText),
actions: <Widget>[
FlatButton(
onPressed: () => Navigator.pop(context),
child: Text("Cancel"),
),
FlatButton(
onPressed: () {
setState(() {
contentText = "Changed Content of Dialog";
});
},
child: Text("Change"),
),
],
);
},
);
},
);
我想从外部修改对话框中文本的状态。
所以而不是:
setState(() {
contentText = "Changed Content of Dialog";
});
在 StatefulBuilder 中,
我想重构并编写一个我称之为例如的函数
updateContent(){
setState(() {
contentText = "Changed Content of Dialog";
});
}
但是我无法以这种方式更新文本。
解决方案
我认为 contextText 变量声明处有问题。使其成为类变量
String contentText = "Content of Dialog";
_whereShowDialogTriggered()
{
showDialog(
context: context,
builder: (context) {
//String contentText = "Content of Dialog";
return StatefulBuilder(
...
推荐阅读
- android - 如何在 QAndroidjniobject 中传递参数?
- postgresql - 将 SQL 转换为 Arel - 列 [...] 必须出现在 GROUP BY 子句中
- android - 从 SDK 库代码中确定应用程序的构建变体
- javascript - 数组通过javascript
- python-3.x - 使用python将列表中的值从数据框存储到数据库中
- javascript - 如何使用角度将列标题包装在 ag-grid 中
- r - R数据框中多列的百分比分组
- python - Django - 我的套接字的路径对于 nginx 配置是否正确
- javascript - 如何在 svg 地图底部为鼠标悬停的每个城市添加描述框?
- git - git pull 失败并显示“应用程序没有调用 WSAStartup,或者 WSAStartup 失败”