javascript - Visjs/React:动态构建数据集
问题描述
我正在从服务器请求数据,然后尝试将其分配给items
. console.log 显示正确的数据,但出现错误:Failed prop type: Invalid props 'items' of type 'object supplied to Timeline, expected array'. I thought
items.add` 将数据集转换为数组?
var items = new vis.DataSet();
items.add(data.abs.map(a, index) => ({
id: index + 1,
content: a.Ent,
start: a.time,
title: a.Trc,
end: null
})));
数据:
"data": {
"abs": [
{
"Ent": "Changed",
"time": 1499348050000,
"Trace": [
{
"filename": "C:/Users/Public/Desktop/word.doc"
}
]
}
解决方案
根据vis.dataset 文档,add
不转换数据集,它只返回添加项目的 id 数组。在您的代码示例中,变量items
实际上是数据集对象本身。当您调用items.add(...
该表达式时,确实会返回一个数组,但您不会捕获它。我假设您将项目作为道具传递,它仍然是数据集对象,但您可以使用该::map
函数,它返回一个数组。
推荐阅读
- couchbase - 如何编写查询以在沙发库中创建数据集
- android - 片段之间的共享元素过渡留下了神秘的偏移
- r - 当组件可能分散在环境中时评估调用
- pandas - 熊猫,填补缺失值
- c# - 如何使用 C# 获取多个用户名并存储在数组中?
- ionic-framework - Gatsby 构建失败并出现错误“未定义 HTMLElement”
- javascript - 这是怎么回事。它告诉我这个错误找不到匹配的关闭标签“<%”
- javascript - 听什么时候反应水合物(反应之外)?
- reactjs - ThemeProvider 是否需要在样式化组件中进行主题化?
- ocaml - 减去列表 OCAML 中的元素