Javascript 带有自定义元素的D3:TypeError:t为空
我正在尝试将D3V.4与canvas元素一起使用(遵循介绍的模式)。我想将我的数据绑定到一个自定义元素,这样它就可以在内存中访问,但不会像svg那样呈现到页面上。但是,下面的代码抛出:Javascript 带有自定义元素的D3:TypeError:t为空,javascript,d3.js,html5-canvas,Javascript,D3.js,Html5 Canvas,我正在尝试将D3V.4与canvas元素一起使用(遵循介绍的模式)。我想将我的数据绑定到一个自定义元素,这样它就可以在内存中访问,但不会像svg那样呈现到页面上。但是,下面的代码抛出:TypeError:t为null。我无法获得有关错误的良好堆栈跟踪 const data = [{a:1,b:2},{a:2,b:4}]; const dataContainer = document.createElement('custom'); const container = d3.select(da
TypeError:t为null
。我无法获得有关错误的良好堆栈跟踪
const data = [{a:1,b:2},{a:2,b:4}];
const dataContainer = document.createElement('custom');
const container = d3.select(dataContainer)
.data(data).enter()
.append('custom')
.attr('class','element')
.attr('test-data-attribute', (d) => { return d; });
const nodes = container.selectAll('.element');
console.log(nodes.length);
代码笔演示:提前感谢 无论您想做什么(我并没有真正遵循),要想让输入的选择生效,您必须使用
selectAll
:
const data = [{
a: 1,
b: 2
}, {
a: 2,
b: 4
}];
const dataContainer = document.createElement('custom');
const container = d3.select(dataContainer)
.selectAll(null)// <---- selectAll here
.data(data).enter()
.append('custom')
.attr('class', 'element')
.attr('test-data-attribute', (d) => {
return d;
});
const nodes = container.selectAll('.element');
console.log(nodes);
const数据=[{
答:1,,
b:2
}, {
答:2,,
b:4
}];
const dataContainer=document.createElement('custom');
const container=d3.select(数据容器)
。选择全部(空)//{
返回d;
});
const nodes=container.selectAll('.element');
console.log(节点);
以下是更新的代码笔:
PS:我删除了console.log(nodes.length)
中的length
,因为在D3V4.x中,选择是对象,不再是数组