当我尝试使用flutter DropdownButton控件时,在控制台中出现此错误。
Package :flutter/源代码/材质/下拉菜单。dart ':Assert失败:第1252行位置12:'小部件.项目!. where((下拉菜单项目)=〉项目.值==小部件.值).长度== 1':不是真的。
有一个很长的追溯...在这里我添加小代码样本,将重现这个错误...任何人都可以简单地复制粘贴在main.dart
文件
// flutter import
import 'package:flutter/material.dart';
void main() {
runApp(const BugReportApp());
}
class BugReportApp extends StatefulWidget {
const BugReportApp({Key? key}) : super(key: key);
@override
State<BugReportApp> createState() => _BugReportAppState();
}
class _BugReportAppState extends State<BugReportApp> {
final TextEditingController _dropdownController = TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Bug Report',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Flex(direction: Axis.vertical, children:[
DropdownButton<String>(
value: _dropdownController.text == ""
? null
: _dropdownController.text,
items: ["hello, world", "how are you", "goodbye"]
.map((_value) => DropdownMenuItem<String>(
child: Text(
_value,
)))
.toList(),
onChanged: (_value) {
setState(() {
_dropdownController.text = _value ?? _dropdownController.text;
});
},
),
],),
);
}
}
我本以为dropown能正常工作,但我不知道为什么它不能。
3条答案
按热度按时间6rqinv9w1#
DropdownMenuItem
上缺少value
。同时确保在家里使用
Scaffold
。ih99xse12#
试试这段代码,在代码中也加了一些解释:
nkhmeac63#
请在下拉菜单项和下拉按钮中添加 * 值 * 字段以防止错误