问题描述
我在尝试为与网络图一起使用的数据集设置 fieldId
选项时遇到错误。如果没有设置 fieldId
选项,一切都很好。这是我尝试过的:
import {DataSet} from "vis-data/peer/umd/vis-data";
import {Network} from "vis-network/peer/umd/vis-network";
...
const nodes = new DataSet(data.nodes,{fieldId: "uuid"});
const edges = new DataSet(data.edges);
const networkData = {nodes: nodes,edges: edges};
const network = new Network(container,networkData);
我收到此打字稿错误:
参数类型 {nodes: DataSet
我知道 id
是 fieldId
的默认值,但是根据我所关注的文档,为什么我不能输入新值(字符串)uuid
?非常感谢您的帮助。
解决方法
是的,不幸的是,这些包在这方面不一致。 vis-network 不支持更改 id 属性的名称。
要看到这一点,在 vis-data 包中,DataSet
允许在 code 的第 140-3 行使用泛型 Id_Prop
:
export class DataSet<
Item extends PartItem<IdProp>,IdProp extends string = "id"
>
但在 vis-network 包中,相同的通用参数始终设置为 'id'
(特别是 typings file 的第 140 行):
export type DataInterfaceNodes = DataInterface<Node,'id'>
如果您直接查看 Network
类的 code,它会直接引用节点的 id
属性。
所以这是包的编写方式所固有的。