Flutter 如何在OnChanged内重置DropdownButtonField的值
我有一个DropdownButtonFormField,其中最后一项是DropdownMenuItem,用于使用对话框添加新对象Flutter 如何在OnChanged内重置DropdownButtonField的值,flutter,mobx,dropdownbutton,Flutter,Mobx,Dropdownbutton,我有一个DropdownButtonFormField,其中最后一项是DropdownMenuItem,用于使用对话框添加新对象 填充( 填充:仅限常量边集(底部:15), 儿童:观察员( 建筑商:(){ 返回DropdownButtonFormField( 值:createdContentStore.subjectTitleSelected, 是的, 装饰:输入装饰( 内容填充:边集。对称(水平:10,垂直:10), 是的, 边框:OutlineInputBorder() ), onChang
填充(
填充:仅限常量边集(底部:15),
儿童:观察员(
建筑商:(){
返回DropdownButtonFormField(
值:createdContentStore.subjectTitleSelected,
是的,
装饰:输入装饰(
内容填充:边集。对称(水平:10,垂直:10),
是的,
边框:OutlineInputBorder()
),
onChanged:(值)异步{
//印刷品(价值);
如果(值=='newSubject'){
Subject newSubject=等待显示对话框(
上下文:上下文,
生成器:()=>CreatedSubjectDialogBox(isNewContent:true,)
);
if(newSubject!=null){
createdContentStore.setSubjectTitleSelected(newSubject.title);
createdContentStore.setSubject(newSubject);
}否则{
//我可以在这里做什么来重置DROP的值?
}
}否则{
createdContentStore.setSubjectTitleSelected(值);
}
},
iconSize:30,
提示:文本(“Selecione uma matéria”),
项目:subjectStore.subjectList.map((主题)=>DropdownMenuItem(
值:subject.title,
子项:文本(主题、标题),
onTap:(){
createdContentStore.setSubject(主题);
},
)).toList()…添加(DropdownMenuItem(
值:“newSubject”,
儿童:中心(
子:文本(
“Nova Matéria”。toUpperCase(),
样式:文本样式(颜色:红色修订),
),
),
)),
);
},
),
);
显示该对话框时,用户可以创建一个新对象,该对象将显示在下拉列表中。当用户取消对话框时,它将显示最后一项。所需的行为是显示提示
有人能帮我吗?
谢谢大家! 只需从下拉列表中删除该值
DropdownButtonFormField(
//** REMOVE THE VALUE **
isDense: true,
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
isDense: true,
border: OutlineInputBorder()
),
onChanged: (value) async {
if(value == 'newSubject'){
Subject newSubject = await showDialog(
context: context,
builder: (_) => CreatedSubjectDialogBox(isNewContent: true,)
);
if(newSubject != null){
createdContentStore.setSubjectTitleSelected(newSubject.title);
createdContentStore.setSubject(newSubject);
} else {
// WHAT CAN I DO HERE TO RESET DROP'S VALUE?
}
} else {
createdContentStore.setSubjectTitleSelected(value);
}
},
iconSize: 30,
hint: Text('Selecione uma matéria'),
items: subjectStore.subjectList.map((subject) => DropdownMenuItem(
value: subject.title,
child: Text(subject.title),
onTap: () {
createdContentStore.setSubject(subject);
},
)).toList()..add(DropdownMenuItem(
value: 'newSubject',
child: Center(
child: Text(
'Nova Matéria'.toUpperCase(),
style: TextStyle(color: redRevise),
),
),
)),
);
},
),
);