首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >错误:无法读取d3-甘特图中null的属性“”getBoundingClientRect“”

错误:无法读取d3-甘特图中null的属性“”getBoundingClientRect“”
EN

Stack Overflow用户
提问于 2019-05-28 16:52:59
回答 1查看 2.2K关注 0票数 0

大家好,当我尝试创建时间线图表时,我得到了以下错误。我导入了d3和d3时间线

代码语言:javascript
代码运行次数:0
运行
复制
import * as d3timelines from 'd3-timelines';
import * as d3 from 'd3';
export class DashboardThreadedComponent implements OnInit {
 private data: any = [
        {label: 'person a', times: [
            {starting_time: 1355752800000, ending_time: 1355759900000},
            {starting_time: 1355767900000, ending_time: 1355774400000}]},
        {label: 'person b', times: [
            {starting_time: 1355759910000, ending_time: 1355761900000}]},
        {label: 'person c', times: [
            {starting_time: 1355761910000, ending_time: 1355763910000}]},
        ];

private chart: any;
 constructor(
        private cookieService: CookieService,
        private modalService: NgbModal,
        private bpeService: BPEService,
        private userService: UserService,
        private router: Router,
        private route: ActivatedRoute,
        public appComponent: AppComponent
  ) {}

    ngOnInit() {

        this.chart = d3timelines.timelines();

        d3.select('.timeline').append('svg').attr('width', 500)
        .datum(this.data).call(this.chart);

    }
}
}

但是我得到了下面的错误

代码语言:javascript
代码运行次数:0
运行
复制
ERROR TypeError: Cannot read property 'getBoundingClientRect' of null

在座的任何人都可以帮助解决这个问题.Thanks很多

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-28 16:31:19

时间线元素可能尚未在ngOnInit中完全创建

要检查是否是这种情况,请尝试:

代码语言:javascript
代码运行次数:0
运行
复制
setTimeout(() => {

        this.chart = d3timelines.timelines();

        d3.select('.timeline').append('svg').attr('width', 500)
        .datum(this.data).call(this.chart);

},1000)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56338408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档