除了 setstate flutter 之外,如何在小部件构建中获取一个值
How is to get a value down in the widget build other than setstate flutter
我正在使用 Agora 设置音频和视频通话。我想在接听电话后显示通话时间
Agora 提供回调,通话时长:
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");
}
)
我正在使用 Agora 设置音频和视频通话。我想在接听电话后显示通话时间
Agora 提供回调,通话时长:
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");
}
)