【发布时间】:2016-01-20 17:45:52
【问题描述】:
我正在尝试使用谷歌图表库来绘制一些时间序列数据,目前这些数据是我从应用程序粘贴到单独文件中的一些虚拟数据。
我有一个不可变的List 看起来像这样:
let data = [{"Date":1452457976,"Value":246.712065},{"Date":1452457990,"Value":268.240542}]
我正在尝试将其转换为纯 JavaScript 数组数组,每个数组都包含一个 Date 对象和一个值,如下所示。
let row_data = data.map( (list_object) => {
let temp_list = Immutable.List();
temp_list = temp_list.push(new Date(list_object.get('Date')));
temp_list = temp_list.push(list_object.get('Value');
return temp_list;
});
export default row_data.toJS();
我使用这个导出的值作为输入,使用react-google-charts 库为谷歌图表构建数据表。结果是页面的部分内容为空,没有任何内容呈现,也没有记录错误。
import row_data from 'data';
let options = {...};
let rows = row_data;
let columns = [
{
'type': 'date',
'name': 'Date'
},
{
'type': 'number',
'name': 'Latency'
}
]
this.setState({
'rows': rows,
'columns': columns,
'options': options
});
深入研究堆栈跟踪,看起来作为行传递的参数不是数组类型,即使记录变量给我以下信息:Array[<length>]。
我觉得我做不可变转换的方式非常老套,因为我今天才开始使用这个库。如果有更好的方法来解决这个问题,请告诉我。
【问题讨论】:
-
你为什么要使用不可变的?使用“不可变转换”这一短语暗示了一些误解。如果您只需要一个操作库,请使用 lodash....
-
事情是,我想尝试一下,因为我正在考虑将它集成到 redux 中。但是如果我不尽快解决这个问题,我可能会采用 lodash。
-
尝试简单地导出 row_data 并将“toJS()”函数移动到第二个 sn-p 中的导入。
标签: javascript reactjs google-visualization immutable.js