setState 根据流更新值

setState update value based on stream

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

setState() or markNeedsBuild() called during build.

这是我的截图

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",
  ),
),

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

你有什么想法吗?

您可以只显示您的 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",
      ),
    )
  } 
);