antvis/G2

[v5] render spec 用法 #4560

visiky posted onGitHub

现状

使用 render spec 用法时,目前需要增加 type: 'view' 的节点,期望可以增加语法糖,简化用法

render({
  type: 'view',
  children: [{
    type: 'line',
    encode: {},
    style: {},
  }]
})

期望

render({
  type: 'line',
  encode: {},
  style: {},
})

posted by pearmini over 2 years ago
import { render } from '@antv/g2';

function Composite({ data, encode }) {
  return () => {
    return [{
      type: 'line',
      data,
      encode
    }, {
      type: 'point',
      data,
      encode: {
        ...encode,
        shape: 'point'
      }
    }]
  }
}

Composite.props = { composite: true }

const c1 = render({
  type: Composite,
  height: 200,
  data: [{ type: '分类1', value: 10 }, { type: '分类2', value: 12 }],
  encode: { x: 'type', y: 'value' }
});

const c2 = render({
  type: 'view',
  height: 200,
  children: [{
    type: Composite,
    data: [{ type: '分类1', value: 10 }, { type: '分类2', value: 12 }],
    encode: { x: 'type', y: 'value' }
  }]
});

document.getElementById('container').replaceChildren(c1, c2);

<img width="400" alt="image" src="https://user-images.githubusercontent.com/15646325/211319787-6823d07e-e22b-4480-bb97-6985bb4b36ae.png">

控制台有报错

posted by visiky over 2 years ago

大概2月份重构的时候会解决这个问题

posted by pearmini over 2 years ago

Fund this Issue

$0.00
Funded

Pull requests