ant-design-charts icon indicating copy to clipboard operation
ant-design-charts copied to clipboard

[Bug]: 使用labelFill来动态设置x轴文字颜色的时候不生效

Open ideaviewes opened this issue 6 months ago • 8 comments

Describe the bug / 问题描述

使用labelFill来动态设置x轴文字颜色的时候不生效

      <Line
        loading={loading}
        animate={null}
        data={data}
        xField={'created_at'}
        yField={'num'}
        shapeField={'smooth'}
        axis={{
          x: {
            labelFill: (created_at: string) => {
              const date = moment(created_at).weekday();
              if (date === 5 || date === 6) {
                return '#ff0000';
              }
              return '#333';
            },
            labelFillOpacity: 1,
          },
        }}
        slider={{
          x: {},
        }}
      />

在控制台输出color,是正常的,但是显式的颜色都是#333

Reproduction link / 复现链接

No response

Steps to Reproduce the Bug or Issue / 重现步骤

No response

Version / 版本

@ant-design/charts 版本:2.2.7 @ant-design/plots 版本:2.3.3

Please select / 请选择

OS / 操作系统

  • [ ] macOS
  • [x] Windows
  • [ ] Linux
  • [ ] Others / 其他

Browser / 浏览器

  • [x] Chrome
  • [ ] Edge
  • [ ] Firefox
  • [ ] Safari (Limited support / 有限支持)
  • [ ] IE (Nonsupport / 不支持)
  • [ ] Others / 其他

ideaviewes avatar May 09 '25 03:05 ideaviewes

打印出来的是回调中返回的颜色值吗?

hustcc avatar May 09 '25 13:05 hustcc

打印出来的是回调中返回的颜色值吗?

是的,我在return前面加上了console.log,颜色是想要的颜色,但是显示的时候,跟打印的颜色不一致

我是想在在x轴上,把周末的时间用红色的显示出来。

ideaviewes avatar May 10 '25 06:05 ideaviewes

@ideaviewes 我这样测试看,是可以的。

{
  x: {
      labelFill: (item, v) => {
        return v > 10 ? 'red' : 'green';
      },
  },
}

Image

hustcc avatar May 10 '25 09:05 hustcc

Image,您好,这个函数的第一个参数是什么呢? 我输出了一下,开始输出的是x轴的created_at的值,后来变成了一个对象

Image

ideaviewes avatar May 11 '25 00:05 ideaviewes

我暂时用这种办法解决了

Image

ideaviewes avatar May 11 '25 00:05 ideaviewes

我这里输出是稳定的,可能是个 bug,帮忙贴下最小复现代码吧🥲

hustcc avatar May 11 '25 00:05 hustcc

https://ant-design-charts.antgroup.com/examples/statistics/line/#basic 在官网这个例子上直接改,就能复现,我给你截图

Image

ideaviewes avatar May 11 '25 02:05 ideaviewes

Image

确实回调的值不一致 @lxfu1

hustcc avatar May 12 '25 01:05 hustcc

看了一下实现,一个回调用于内部的 layout 计算,一个回调用于 label 绘制时。

lxfu1 avatar Oct 22 '25 06:10 lxfu1