Javascript 转换在第一次创建图表时不起作用

Javascript 转换在第一次创建图表时不起作用,javascript,d3.js,Javascript,D3.js,我创建了一个D3图,如下所示 单击鼠标后,请先单击我!按钮,图表就会简单地出现。当我点击更新图表时!按钮,转换工作。为什么单击第一个按钮时不起作用?简单地说, 当您单击ClickMeFirst时,在create函数中创建svg命名栏并调用draw 但是更新图表!单击第一个按钮,svg不存在。 所以函数绘制不起作用 const path = d3.select('#bar') .selectAll('path') .data(pie(

我创建了一个D3图,如下所示

单击鼠标后,请先单击我!按钮,图表就会简单地出现。当我点击更新图表时!按钮,转换工作。为什么单击第一个按钮时不起作用?

简单地说, 当您单击ClickMeFirst时,在create函数中创建svg命名栏并调用draw

但是更新图表!单击第一个按钮,svg不存在。 所以函数绘制不起作用

 const path = d3.select('#bar')
               .selectAll('path')
                .data(pie(data))

通常,当元素存在时,转换工作。因此,当您更新时,图表已经存在,因此它有地方可以转换,但是在第一次加载时,图表不存在,因此它没有任何东西可以转换。我建议您在首次加载应用程序时,将其加载到某个状态(如不透明度0),然后添加更改该状态(如不透明度1)的类。
 const path = d3.select('#bar')
               .selectAll('path')
                .data(pie(data))