除了 setstate flutter 之外,如何在小部件构建中获取一个值

How is to get a value down in the widget build other than setstate flutter

我正在使用 Agora 设置音频和视频通话。我想在接听电话后显示通话时间

A​​gora 提供回调,通话时长:

  rtcStats: (stats) {
          print('stats');
          print(stats.cpuAppUsage);
          print(stats.totalDuration);
          setState(() {
            duration = Duration(seconds: stats.totalDuration!);
          });
        },

而不是像上面那样使用 setState,这基本上每秒都会重建小部件,我在这里有什么选择?

像这样使用 valueNotifier

ValueNotifier<double?> secondsNotifier = ValueNotifier(null)
and  double become like this 
 rtcStats: (stats) {
          print('stats');
          print(stats.cpuAppUsage);
          print(stats.totalDuration);
          secondNotifier.value = stats.totalDuration
        },
in build add ValueListenableBuilder<double> (
valueListenable:secondNotifier,
build:(ctx,second,_){
 if(second == null){
   return SizedBox.shrink();
}
return Text("$second");
}

)