首页 > 解决方案 > d3.js 使用 selection.join 链接多个转换

问题描述

我正在从通用更新模式到新的(呃)数据连接进行一些重构。我有一些异步转换链接需求,所以到目前为止我的代码看起来像这样:

const transitions = [];

svg
  .selectAll('g')
  .data(someData)
  .join(
    (enter) => {
      const gEnter = enter.append('g');
      gEnter.append('rect'); // I also have multiple adjacent elements I need to append
      return gEnter;
    },
    (update) => {
      const t1 = update
        .transition()
        .attr(...);
      const t2 = update
        .select('rect')
        .transition()
        .attr(...);
      transitions.push(t1.end(), t2.end());

      return t1; // ??? I know I need a materialized selection here, but which one?
    }
  );

return Promise.all(transitions);

此代码有效!问题是,我希望更新转换与 enter 合并。在此示例中,更新转换不会在输入时运行。关于我如何做到这一点的任何想法?

到目前为止,受此答案启发的工作

标签: joind3.jsmergetransition

解决方案


推荐阅读