Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何在内部没有状态生成器的情况下在颤振中更新SimpleDialog如同使用了一样,外部的值不会更新_User Interface_Flutter_Dart_Runtime Error_Setstate - Fatal编程技术网

User interface 如何在内部没有状态生成器的情况下在颤振中更新SimpleDialog如同使用了一样,外部的值不会更新

User interface 如何在内部没有状态生成器的情况下在颤振中更新SimpleDialog如同使用了一样,外部的值不会更新,user-interface,flutter,dart,runtime-error,setstate,User Interface,Flutter,Dart,Runtime Error,Setstate,我的问题很简单。我有图标。添加和图标。根据数组是否有值的条件删除。该数组在flatter中使用.join()转换为字符串 如果我使用flatter中的有状态生成器,simpleDialog中的值会更新,因此图标会根据需要更改,但我不会从调用dailog小部件的屏幕中获取数据 现在我可以访问我想要的数据,只是图标没有更新 showAlertDialog(构建上下文){ //设置SimpleDialog SimpleDialog=SimpleDialog( 标题:const Text(“选择您的健

我的问题很简单。我有
图标。添加
图标。根据数组是否有值的条件删除
。该数组在
flatter
中使用
.join()
转换为字符串

如果我使用flatter中的
有状态生成器
simpleDialog
中的值会更新,因此图标会根据需要更改,但我不会从调用
dailog小部件的屏幕中获取数据

现在我可以访问我想要的数据,只是图标没有更新


showAlertDialog(构建上下文){
//设置SimpleDialog
SimpleDialog=SimpleDialog(
标题:const Text(“选择您的健康问题”),
儿童:[
容器(
宽度:MediaQuery.of(context).size.width*0.9,
高度:MediaQuery.of(上下文).size.height*0.9,
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
扩大(
子项:ListView.builder(
收缩膜:对,
itemCount:hi.length,
itemBuilder:(BuildContext ctxt,int index){
回墨槽(
onTap:()=>设置状态(){
var x=hi[index]。标题;
if(包含(x)){
hIssue.removeAt(hIssue.indexOf(x));
打印(“删除->x美元”);
}否则{
加上(x);
打印(“添加->x美元”);
}
}),
孩子:填充(
填充:常量边集。对称(水平:20,垂直:10),
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
正文(
嗨[index]。title.toString(),
样式:Theme.of(context).textTheme.title.copyWith(fontSize:14),
),
(hIssue.contains(hi[index].title))?图标(Icons.remove):图标(Icons.add)
],
),
),
);
},
),
),
],
),
),
],
);
//显示对话框
显示对话框(
上下文:上下文,
生成器:(BuildContext上下文){
返回对话框;
},
);
}
}

如果我理解正确,您希望从对话框中给用户的选择中得到结果。函数返回一个未来。这个未来将返回给你决定的价值

void showDialogAlert(context){
  showDialog(
    context: context,
    builder: (context) {
      return dialog;
    }
  ).then((valueFromDialog){
    print('do something with the value $valueFromDialog');
  });
}