繁体   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