簡體   English   中英

顫動下拉按鈕

[英]Flutter DropDownButton

我嘗試在dropdownbutton顯示類別數據,當我選擇category時出現此錯誤,

items == null || items.isEmpty || value == null ||

代碼DropDownButton

    class _DropDownButtonState extends State<DropDownButton> {
  final CollectionReference categoryData = Firestore.instance
      .collection('category')
      .document('house')
      .collection('subCategory');
  Stream<List<Categories>> categories;
  Categories _currentCategory;
  @override
  void initState() {
    categories = categoriesData;
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return StreamBuilder<List<Categories>>(
        stream: categories,
        builder: ((context, snapshot) {
          if (!snapshot.hasData) return CircularProgressIndicator();
          return DropdownButton(
            hint: Text('choose category'),
            value: _currentCategory,
            items: snapshot.data
                .map((doc) => DropdownMenuItem(
                      child: Text(doc.categoryname),
                      value: doc,
                    ))
                .toList(),
            onChanged: (doc) => setState(() {
              _currentCategory = doc;
              print(_currentCategory.categoryname);
            }),
          );
        }));
  }

  Future createHouseCategory(_categorynameController) async {
    var id = Uuid();
    String categoryId = id.v1();
    await categoryData
        .document(categoryId)
        .setData({'categoryname': _categorynameController});
  }

  List<Categories> _categoriesDataFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return Categories(
        categoryname: doc.data['categoryname'],
      );
    }).toList();
  }

  Stream<List<Categories>> get categoriesData {
    return categoryData.snapshots().map(_categoriesDataFromSnapshot);
  }


}

只需查看此鏈接,我已經解決了下拉列表的問題:

下拉按鈕不會改變

也許您沒有為值字段提供所需的參數,這就是為什么它沒有在下拉按鈕中顯示索引的原因。 讓我知道它是否有效。

如果您有任何問題,請給我 JSON 示例,也許我們可以解決它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM