簡體   English   中英

DropdownButton - 更新 flutter 后出錯

[英]DropdownButton - error after updating flutter

我只是發現這部分代碼在更新 flutter 后不再工作。 我不明白是什么問題。 它以前工作得很好。 如果您能幫助我解決此問題,我們將不勝感激。 非常感謝。

完整的錯誤信息是

“無法推斷類型參數'T'。

試圖為不起作用的“T”推斷“動態”:參數“onChanged”聲明為“無效函數(T?)?” 但參數是'void Function(Object?)'。 'dynamic' 類型推斷自:參數 'items' 聲明為 'List<DropdownMenuItem>?' 但參數是'List<DropdownMenuItem>'。 參數“值”聲明為“T?” 但論點是“動態的”。

考慮將顯式類型參數傳遞給泛型。

"

 Padding(
                padding: const EdgeInsets.all(8.0),
                child: StreamBuilder<QuerySnapshot>(
                    stream: FirebaseFirestore.instance
                        .collection('Users')
                        .doc(FirebaseAuth.instance.currentUser!.uid)
                        .collection('area_of_Focus')
                        .snapshots(),
                    builder: (context, snapshot) {
                      if (!snapshot.hasData)
                        const Text("Loading.....");
                      else {
                        List<DropdownMenuItem> projectItems = [];
                        for (int i = 0; i < snapshot.data!.docs.length; i++) {
                          DocumentSnapshot snap = snapshot.data!.docs[i];
                          projectItems.add(
                            DropdownMenuItem(
                              child: Text(
                                (snap['area_of_Focus_Name']),
                                style: TextStyle(color: Colors.black),
                              ),
                              value: (snap['area_of_Focus_Name']),
                            ),
                          );}
                        return Row(
                          mainAxisAlignment: MainAxisAlignment.start,
                          children: <Widget>[
                            DropdownButton( //this is where I am having this error
                              items: projectItems,
                              onChanged:
                                  (myFocus) {
                                setState(() {
                                  selectedFocus = myFocus;
                                  _valueAreaOfFocusSaved = myFocus; 
                                 // taskNewValue ['area_of_Focus_Name'] = myFocus ;
                                });
                              },
                              value: selectedFocus,
                              isExpanded: false,
                              hint:  SizedBox(
                                width: 315.0,
                                height: 40.0,
                                child: Text(
                                  projectName,
                                  style: TextStyle(color: Colors.black),
                                ),
                              ),
                            ),
                          ],
                        );
                      }
                      return Container(
                        height: 0,width: 0,
                      );
                    }
                ),
              ),

我找到了刪除錯誤消息的解決方案

Padding(
                padding: const EdgeInsets.all(8.0),
                child: StreamBuilder<QuerySnapshot>(
                    stream: FirebaseFirestore.instance
                        .collection('Users')
                        .doc(FirebaseAuth.instance.currentUser!.uid)
                        .collection('area_of_Focus')
                        .snapshots(),
                    builder: (context, snapshot) {
                      if (!snapshot.hasData)
                        const Text("Loading.....");
                      else {
                        List<DropdownMenuItem> projectItems = [];
                        for (int i = 0; i < snapshot.data!.docs.length; i++) {
                          DocumentSnapshot snap = snapshot.data!.docs[i];
                          projectItems.add(
                            DropdownMenuItem(
                              child: Text(
                                (snap['area_of_Focus_Name']),
                                style: TextStyle(color: Colors.black),
                              ),
                              value: (snap['area_of_Focus_Name']),
                            ),
                          );}
                        return Row(
                          mainAxisAlignment: MainAxisAlignment.start,
                          children: <Widget>[
                            DropdownButton<dynamic> ( 
                              items: projectItems,
                              onChanged:
                                  (myFocus) {
                                setState(() {
                                  selectedFocus = myFocus;
                                  _valueAreaOfFocusSaved = myFocus; 
                                 // taskNewValue ['area_of_Focus_Name'] = myFocus ;
                                });
                              },
                              value: selectedFocus,
                              isExpanded: false,
                              hint:  SizedBox(
                                width: 315.0,
                                height: 40.0,
                                child: Text(
                                  projectName,
                                  style: TextStyle(color: Colors.black),
                                ),
                              ),
                            ),
                          ],
                        );
                      }
                      return Container(
                        height: 0,width: 0,
                      );
                    }
                ),
              ),

暫無
暫無

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

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