我需要将动态值分配给 JavaScript 字典以用于 echarts,但是在将动态值分配给字典时,它显示的行为与分配 s 相比有所不同......
我需要将动态值分配给 JavaScript 字典以用于 echarts,但是当将动态值分配给字典时,它显示的行为与分配静态值不同。
分配静态值时:
response = {
"stacks": {"5G_L2": [{"Open": "43"},{"Close": "24"}],
"5G_L3": [{"Open": "12"},{"Close": "2"}]
}
};
调试窗口显示如下:
而当动态分配值时,如下所示:
var datastck=[];
var serverdata = '{{ barCdata | tojson }}';
resPbar = $.parseJSON(serverdata);
$.each(resPbar, function (i, item) {
var di={};
di[item.Team]=[{"Open": item.Open},{"Close": item.Close}];
datastck.push(di);
});
response = {
"stacks": datastck
};
调试窗口如下:
它添加了一个额外的数组层。我需要有静态分配结构来支持 echarts,请有人提供建议?
提前致谢。
这看起来像是 Mockito 和 Dart 声音空安全的问题。
正如 NULL_SAFETY_README 所述,由于参数匹配和返回类型的原因,以下代码在健全的空安全下是非法的。有关详细信息,请参阅链接。
class HttpServer {
Uri start(int port) {
// ...
}
}
class MockHttpServer extends Mock implements HttpServer {}
var server = MockHttpServer();
var uri = Uri.parse('http://localhost:8080');
when(server.start(any)).thenReturn(uri);
你的嘲笑也同样如此 ApiServer
。
自述文件提供了两种解决方案:代码生成或使用反射手动实现模拟。在后一种情况下,模拟将如下所示
class MockHttpServer extends Mock implements HttpServer {
@override
void start(int? port) =>
super.noSuchMethod(Invocation.method(#start, [port]));
}
从那里,您可以 when()
像以前一样 capture()
或
对于更复杂的模拟,代码生成方法是更好的选择。