gooddata - GoodData 图表组件抛出 TypeError 错误:item.predicate 不是从配置设置颜色的函数
问题描述
在从配置中设置颜色并使用 Gooddata UI Charts 组件时,它会抛出以下错误 TypeError: item.predicate is not a function
我的配置如下,在重置默认颜色时它工作正常,但是随着颜色的改变,我在 api 中获得了 colorMapping 对象,并且在应用此配置后抛出错误。
我该如何解决它,请帮助我。
config={{
colorMapping: [{
color: { type: "guid", value: "17" },
id:"0d447449c2844b228923c37de7b6aaf9"
}]
}}
解决方案
文档https://sdk.gooddata.com/gooddata-ui/docs/chart_config.html#Color-mapping中描述了 ColorMapping 的用法
您需要定义谓词函数,当返回 true 时,将应用相应的颜色(https://sdk.gooddata.com/gooddata-ui/docs/ht_create_predicates.html)。
在您的情况下,localId 谓词似乎适合您 https://github.com/gooddata/gooddata-ui-sdk/blob/master/libs/sdk-ui/src/base/headerMatching/HeaderPredicateFactory.ts#L264
如果您使用的是旧版本的 Gooddata UI.SDK,而不是 v8,您需要自己实现谓词。像这样的东西(或等效的措施)。
predicate: headerItem =>
headerItem.attributeHeaderItem &&
headerItem.attributeHeaderItem.localIdentifier === "0d447449c2844b228923c37de7b6aaf9", // find attribute item by localIdentifier
您可以将官方文档切换到您正在使用的 Gooddata UI.SDK lib 的任何版本,并阅读有关 ColorMapping 的同一篇文章 https://sdk.gooddata.com/gooddata-ui/docs/7.9.0/chart_config.html#color -映射