- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Flutter 的新手,但我正在尝试创建一个 DropdownButtonFormField 并且它不起作用。我收到一个错误,说我有重复的值。有趣的是,我没有一个包含重复值的列表。我在 SO 上发现了一个类似的问题,解决方案说用一个值启动字符串,并且用户正在复制一个列表项,但我对另一个列表有一个类似的解决方案,它似乎工作正常。我无法弄清楚为什么它在这里不起作用。任何帮助是极大的赞赏。
错误消息:
There should be exactly one item with [DropdownButton]'s value: 0.
Either zero or 2 or more [DropdownMenuItem]s were detected with the same value
'package:flutter/src/material/dropdown.dart':
Failed assertion: line 1411 pos 15: 'items == null || items.isEmpty || value == null ||
items.where((DropdownMenuItem<T> item) {
return item.value == value;
}).length == 1'
The relevant error-causing widget was:
StreamBuilder<UserProfile>
final List<String> accountType = ['Educator', 'School Administrator', 'Parent'];
String _currentAccountType;
@override
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
return StreamBuilder<UserProfile>(
stream: DatabaseService(uid: user.uid).userProfileData,
builder: (context, snapshot) {
if (snapshot.hasData) {
UserProfile userProfileData = snapshot.data;
return Form(
key: _formKey,
child: Column(
children: <Widget>[
SizedBox(height: 20.0),
DropdownButtonFormField(
decoration: textInputDecoration,
value: _currentAccountType ?? userProfileData.accountType,
items: accountType.map((accountType) {
return DropdownMenuItem(
value: accountType,
child: Text(accountType),
);
}).toList(),
onChanged: (val) {
setState(() {
_currentAccountType = val;
});
},
),
class DatabaseService {
final String uid;
DatabaseService({this.uid});
final CollectionReference userProfileCollection =
Firestore.instance.collection('user_profile');
Future updateUserProfile(
String accountType,
String birthDate,
String courseName,
String dateJoined,
String email,
String firstName,
String lastName,
String schoolName,
String title) async {
return await userProfileCollection.document(uid).setData({
'accountType': accountType,
'birthDate': birthDate,
'courseName': courseName,
'dateJoined': dateJoined,
'email': email,
'firstName': firstName,
'lastName': lastName,
'schoolName': schoolName,
'title': title,
});
}
//User Profile from snapshot
List<Profile> _userProfileListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
return Profile(
accountType: doc.data['accountType'] ?? '',
birthDate: doc.data['birthDate'] ?? '',
courseName: doc.data['courseName'] ?? '',
dateJoined: doc.data['dateJoined'] ?? '',
email: doc.data['email'] ?? '',
firstName: doc.data['firstName'] ?? '',
lastName: doc.data['lastName'] ?? '',
schoolName: doc.data['schoolName'] ?? '',
title: doc.data['title'] ?? '',
);
}).toList();
}
UserProfile _userProfileFromSnapshot(DocumentSnapshot snapshot) {
return UserProfile(
uid: uid,
accountType: snapshot.data['accountType'],
birthDate: snapshot.data['birthDate'],
courseName: snapshot.data['courseName'],
dateJoined: snapshot.data['dateJoined'],
email: snapshot.data['email'],
firstName: snapshot.data['firstName'],
lastName: snapshot.data['lastName'],
schoolName: snapshot.data['schoolName'],
title: snapshot.data['title'],
);
}
Stream<List<Profile>> get userProfile {
return userProfileCollection.snapshots().map(_userProfileListFromSnapshot);
}
Stream<UserProfile> get userProfileData {
return userProfileCollection
.document(uid)
.snapshots()
.map(_userProfileFromSnapshot);
}
}
最佳答案
userProfileData.accountType 是“0”,不是“教育者”或“学校管理员”或“家长”。
成功:值必须在 items.value 中
final List<String> accountType = ['Educator', 'School Administrator', 'Parent'];
DropdownButtonFormField(
decoration: textInputDecoration,
value: accountType[0],
items: accountType.map((accountType) {
return DropdownMenuItem(
value: accountType,
child: Text(accountType),
);
}).toList(),
onChanged: (val) {
setState(() {
_currentAccountType = val;
});
},
),
final List<String> accountType = ['Educator', 'School Administrator', 'Parent'];
DropdownButtonFormField(
decoration: textInputDecoration,
value: 'hahaha',
items: accountType.map((accountType) {
return DropdownMenuItem(
value: accountType,
child: Text(accountType),
);
}).toList(),
onChanged: (val) {
setState(() {
_currentAccountType = val;
});
},
),
关于firebase - 检测到零个或 2 个或更多 [DropdownMenuItem] 具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59925233/
我正在尝试在警报对话框小部件内创建一个下拉列表。菜单项需要从Firebase中拉出。到目前为止,我已经创建了警报对话框,遍历了Firebase数据并从结果中创建了一个列表。当我尝试使用列表作为下拉列表
我正在尝试从下拉菜单中更改主题颜色,但出现此错误:“预期类型为'List>'的值,但类型为之一 'MappedListIterable>' Color selected ; MaterialApp(
在 flutter 中,我正在使用 TMDB API 并从那里获取流派名称,并想在我的 DropdownButton 上显示它们,但我遇到了这个错误。 The argument type List >
我在Flutter中重构DropdownButton小部件的代码时遇到问题。我有简单的DropdownButton。 DropdownButton( items: [ DropdownMe
List> department = []; @override void initState() { super.initState(); department.add(DropdownMe
我的 Flutter 应用程序中有一个 DropdownButton,它包含一些相当长的字符串,我遇到了 DropdownMenuItems 中一些文本重叠的问题。有一个图像链接,您可以在其中看到一个
我正在 Flutter 中创建以下注册表单。 TextStyle white = new TextStyle(color: Colors.white, decorationColor: Col
在我的申请中,我想根据动物的种类(如果是狗或猫)展示疫苗。我遇到一个错误:在null上调用了“ map ”方法。尝试调用:映射DropdownMenuItem。为什么会这样呢?我已经在方法中放置了异步
我想用一些字符串填充Flutter中的DropdownButton,但出现错误 The element type 'String' can't be assigned to the list type
我是 Flutter 的新手,但我正在尝试创建一个 DropdownButtonFormField 并且它不起作用。我收到一个错误,说我有重复的值。有趣的是,我没有一个包含重复值的列表。我在 SO 上
我正在尝试使用 ListView.builder 构建多个 DropdownButton 与用户点击 float 操作按钮的次数一样多 new FloatingActionButton(
我已经构建了 DropdownMenuItem 的代码,现在当我从 dropdownmenuitem 单击一个项目时,它应该移动到另一个屏幕。下面是代码 class TimesScreen exten
在 Flutter 中,我可以使用 DropdownMenuItems 构建一个下拉菜单,如下所示: 我添加的 DropdownMenuItems 总是比下拉菜单本身宽: 如何调整 DropdownM
我需要根据语言选择更改小部件的 textDirection。我的全局翻译类中有一个 textDirection 变量,并将其添加到父小部件。除了 DropdownMenuItems 之外,所有的都工作
我是 Flutter 新手。我想从我的列表变量中显示 DropdownMenuItem。查看我的代码。 // my list variable List listUserType = [
我通过循环获取以下内容的API请求的结果来简单地打印DropdownButton中的内容时遇到了问题: [{id: 1, nome: foo}, ...] 这是它的代码。 return _respon
DropdownButton( value: value, items: locationItems.map( DropdownMenuItem
我正在做一个 flutter 项目,我将一个对象数组(List> 数组)从我的 Bloc 传递给流生成器。如果我打印对象,它打印得很好,但是当我尝试在 DropdownMenuItem 中映射它们时,
Error code您好,我是 flutter 新手,对 dropdownbutton 有一个关于对多个 dropdownbutton 使用相同值的问题。 根据我对错误的理解,这是由于在同一事件中对
我是一名优秀的程序员,十分优秀!