addChart后在数据符合规则的情况下无法在advice中展示
如题,当我按照文档增加了一个图表类型后,当我用dataPropsToAdvices时,并没有获得对应的图表类型
你好 请问有相关代码或者提供一个片段链接(类似codepen)吗
你好 请问有相关代码或者提供一个片段链接(类似codepen)吗
代码类似是这样的
import React, { useEffect } from 'react';
import {
CKBJson,
addChart,
ChartKnowledge,
TransKnowledgeProps,
Language,
} from '@antv/knowledge';
import {dataToDataProps, dataPropsToAdvices} from "@antv/chart-advisor";
const Test = () => {
useEffect(() => {
const newChart: ChartKnowledge = {
id: 'liquid_diagram',
name: 'Liquid Diagram',
alias: ['Liquid Chart'],
family: ['Others'],
def: 'A liquid diagram is a infographic for presenting progress.',
purpose: ['Comparison'],
coord: [],
category: ['Diagram'],
shape: ['Lines'],
dataPres: [{ minQty: 1, maxQty: 1, fieldConditions: ['Interval', "Discrete"] }],
channel: ['Position'],
recRate: 'Recommended',
};
const newChartZh: Record<Language, TransKnowledgeProps> = {
'zh-CN': {
name: '水波图',
alias: ['水波球', '进度球'],
def: '水波图是一种用球形容器和其中的水平线位置来表示进度的示意图。',
},
'en-US': {
name: 'Liquid Diagram',
alias: ['水波球', '进度球'],
def: '水波图是一种用球形容器和其中的水平线位置来表示进度的示意图。',
},
};
addChart(newChart, newChartZh);
const allTypeData = CKBJson();
console.log(allTypeData); // 此时是可以打印出增加的图表的;
const data = [{value: 20}];
const dataProps = dataToDataProps(data);
const advices = dataPropsToAdvices(dataProps,{}, false);
console.log(advices); // 但是推荐的列表里面并没有新增的chart
}, [])
return <div></div>
}
export default Test;
我认为是toAdvices的时候还是使用的addChart之前的知识库,所以导致没有获取到增加的图表。 希望能帮我解惑,谢谢
这个确实是缺陷:新增的图表没有进推荐的流程里。 感谢反馈!
@hyqaimx 一开始设计的时候,CKB 本身具有比较独立的应用能力:提供一套图表类型数据。addChart 基于这个场景设计,所以是比较独立的 api。由于在推荐流程中使用自定义 CKB 需要对推荐流程中的规则做相应定制化设置,门槛高流程繁琐,所以一直没有打通这两种能力。
不过非常感谢提出这个 issue!确实这两种能力的结合使用是一个明显的需求,也是非常直观容易联想到的组合,我们会重新设计一下相关能力,把他们打通。
在 AVA v3 中,可以通过新的方式新增图表:https://ava.antv.antgroup.com/api/ckb/ckb#%E5%A2%9E%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9%89%E5%9B%BE%E8%A1%A8
关于让自定义图表加入标准规则的计算,3.0 中提供了解法,但是 3.1 中需要进一步简化方法。详见:https://github.com/antvis/AVA/issues/636