首页 > 解决方案 > 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"  
            }]
          }}

标签: gooddata

解决方案


文档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 -映射


推荐阅读