小编Pri*_*nou的帖子

实现setState会导致无限循环波动

我是Flutter的新手,并且遇到了状态问题。如果有人可以帮助我,我将不胜感激。

因此,我首先将Flutter下拉菜单的项目设置为列表,我们将其称为列表l,它的值也将称为变量v。

然后在父窗口小部件的开头,在构建之前,我调用一个方法,该方法从sqlflite数据库中获取一些信息。当它返回时,我创建一个新的drop-downmenuItem列表并实现新状态。我将List l设置为新创建的,并将值设置为List的第一项的第一个值,以便下拉菜单重新呈现。

这似乎很好用,除了从数据库获取信息的方法不断被调用会导致无限循环。并冻结我的应用程序。有人知道我在做什么错吗?

非常感谢!

    // Declaring variables
    List<DropdownMenuItem> _classList;

    String _chosenClass;


    initState:

    @override

    void initState() {

     _classList = [DropdownMenuItem(

       child: Text("Choose Class"),

       value: null,)];

     _chosenClass = _classList.first.value;

     super.initState();

    }


    // Get info from sqlflite database: 

    getClassesToDisplay() {

     debugPrint("Works");

     getDatabaseInstances(tableClass, [className]).then((classNames){

       if(classNames.length > 0){

         List<DropdownMenuItem> tempList =[];

         classNames.forEach((classArg){

           tempList.add(

               DropdownMenuItem(

                 child: Text(classArg[className]),

                 value: classArg[className],

               )

           );

         });

         debugPrint("TEMPLIST: ${tempList}");

         setState(() {

           _classList = tempList;

           _chosenClass = tempList.first.value;

         });

       }


     });


    }


    // Build:

    @override

    Widget build(BuildContext context) {

     getClassesToDisplay(); …
Run Code Online (Sandbox Code Playgroud)

sqlite android ios dart flutter

4
推荐指数
1
解决办法
1216
查看次数

如何在firestore中获取setData的ID?

我正在编写一个 flutter 应用程序,在其中我在 firebase 中设置了一个文档实例,如下所示:

await _firestoreInstance.collection("groups").document().setData(
{
  'group_name': groupName,
  'class_name': className,
  'location': groupLocation,
  'time': groupTime,
  'date': groupDate,
  'number_in_group': 1
},);
Run Code Online (Sandbox Code Playgroud)

然后我想获取上述文档 ID 并执行以下操作:

  _firestoreInstance.collection("colleges").document(collegeStudent.collegeId).collection('activeGroups').document().setData({'group_id':*above document id goes here*}); //above document id is the id of the document created by the first query
Run Code Online (Sandbox Code Playgroud)

所以我的问题是有没有办法获取第一个文档的 id 并将其用作第二个查询的参考?

database firebase firebase-realtime-database flutter google-cloud-firestore

3
推荐指数
1
解决办法
2467
查看次数

Firebase通知呈灰色颤动

我正在使用Firebase Cloud Messaging将通知发送到我的Flutter应用。它工作正常,但我的应用程序图标通知在Google Pixel XL上为灰色。我可以看到轮廓,但是由于某种原因,它仍然是灰色的。我读过不同的文章,它与Android SDK级别有关,但是Flutter中的minSdkVersion已经是16(小于21),所以我不明白为什么颜色不会显示。

那么可以用颜色显示我的应用程序图标以进行通知吗?

- 提前致谢

android push-notification firebase flutter firebase-cloud-messaging

1
推荐指数
3
解决办法
2005
查看次数