setState根据流更新值

Pet*_*nek 2 dart flutter stream-builder

我试图在流构建器中设置值,但是当我想使用 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",
  ),
),

Run Code Online (Sandbox Code Playgroud)

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

你有什么想法?

Joã*_*res 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",
      ),
    )
  } 
);
Run Code Online (Sandbox Code Playgroud)