1

我正在尝试在流生成器中设置值,但是当我想使用 setState 函数设置值时,出现此错误。

在构建期间调用 setState() 或 markNeedsBuild()。

这是我的剪报

int countRecent = 0;

...

return StreamBuilder<Object>(
      stream: Data(uid: user.uid).getTrips,
      builder: (context, snapshot) {
        dynamic items = snapshot.data;
        setState(() => countRecent = items.length);
} 

...

Text(
  "$countRecent",
  style: TextStyle(
   color: Colors.white,
     fontWeight: FontWeight.w900,
     fontSize: 43,
     letterSpacing: 0.2,
     fontFamily: "VarelaRound",
  ),
),

基本上,我想要的是每次更新这个变量,文档更改(或者更确切地说是这个文档的长度。)

你有什么想法?

4

1 回答 1

5

您可以只显示您Text在您的数据上获得的数据StreamBuilder

return StreamBuilder(
  stream: Data(uid: user.uid).getTrips,
  builder: (context, snapshot) {
    dynamic items = snapshot.data;
    return Text(
      "${items.length}",
      style: TextStyle(
      color: Colors.white,
        fontWeight: FontWeight.w900,
        fontSize: 43,
        letterSpacing: 0.2,
        fontFamily: "VarelaRound",
      ),
    )
  } 
);
于 2020-01-17T13:15:05.070 回答