问题描述
class _MainActivityState extends State<MainActivity> {
int _selectedPage = 0;
List<Widget> Pagelist = List<Widget>();
@override
void initState() {
Pagelist.add(HomePage());
Pagelist.add(ChatPage());
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),),body: IndexedStack(
index: _selectedPage,children: Pagelist,//Bottom Navigation Bar added
bottomNavigationBar: BottomNavigationBar(
.....
这里metricArguments是new MathExpression({
expression: `SUM([${Object.keys(metricArguments).join(",")}])`,usingMetrics: metricArguments,})
,但Map<string,IMetric>
需要usingMetrics
类型。我想问一下如何将Record<string,IMetric>
转换成Map<string,Imetric>
,因为我有指标存储在地图中。
我也可以将指标插入到Record类型而不是map中,但是找不到任何方法。
解决方法
您将需要一个函数来将Map
转换为对象文字。
function convertMapToObject(metricArguments: Map<string,IMetric>): Record<string,IMetric> {
let newObject: Record<string,IMetric> = {}
for (let [key,value] of metricArguments) {
newObject[key] = value;
}
return newObject;
}
new MathExpression({
expression: `SUM([${Object.keys(metricArguments).join(",")}])`,usingMetrics: convertMapToObject(metricArguments),})