react-native-echarts-pro icon indicating copy to clipboard operation
react-native-echarts-pro copied to clipboard

RN0.75.3上yAxis的axisLabel formatter用函数无法显示,之前RN版本是0.64.3可以显示

Open wszhutianyu opened this issue 1 year ago • 4 comments

axisLabel: {
  show: true,
  formatter: (value) => {
    return value
  },
},

wszhutianyu avatar Oct 12 '24 07:10 wszhutianyu

react-native-webview 版本为 13.12.2

wszhutianyu avatar Oct 12 '24 07:10 wszhutianyu

完整示例请提供一下。

supervons avatar Oct 12 '24 08:10 supervons

{ xAxis: { type: 'category', data: ['数据'], }, toolbox: { show: false, }, yAxis: { type: 'value', axisLabel: { show: true, formatter: value => { let v = 0 if (value > 0) { if (value < 1000) { v = value } else if (value >= 1000 && value < 1000000) { v = (value / 1000).toFixed(0) + 'K' } else { v = (value / 1000000).toFixed(0) + 'M' } } else { v = value } return v } }, }, series: [ { data: [10000, 30000, 500000, 60000], type: 'bar', name: 'bar', } ], } option大致是这样的,主要目的是y轴数据太大的时候想转换一下单位

wszhutianyu avatar Oct 12 '24 08:10 wszhutianyu

{ xAxis: { type: 'category', data: ['数据'], }, toolbox: { show: false, }, yAxis: { type: 'value', axisLabel: { show: true, formatter: value => { let v = 0 if (value > 0) { if (value < 1000) { v = value } else if (value >= 1000 && value < 1000000) { v = (value / 1000).toFixed(0) + 'K' } else { v = (value / 1000000).toFixed(0) + 'M' } } else { v = value } return v } }, }, series: [ { data: [10000, 30000, 500000, 60000], type: 'bar', name: 'bar', } ], } option大致是这样的,主要目的是y轴数据太大的时候想转换一下单位

@supervons

wszhutianyu avatar Oct 12 '24 08:10 wszhutianyu

一样,我rn是0.72.5,一样出现了这个问题

basesuperju avatar Dec 18 '24 02:12 basesuperju

是的,发现使用formatter函数会导致整个图表展示不出来,移除formatter函数可以展示出来 RN 版本升级从0.67.5升级到了0.76.6

John251314 avatar Mar 13 '25 09:03 John251314

试下:

xAxis: {
  type: "category",
  boundaryGap: false,
  axisLabel: {
    formatter: `(value) => {
      'show source';
      return value
   }`,
  },
  data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
}

supervons avatar Apr 15 '25 01:04 supervons

不行哦,这样坐标刻度显示的是整个代码 @supervons

wszhutianyu avatar Apr 17 '25 07:04 wszhutianyu

确保是最新 1.9.3 版本,加上 enableParseStringFunction 字段:

  <RNEChartsPro
    enableParseStringFunction
  />

另外,这里面最好是加上分号:

      axisLabel: {
        show: true,
        formatter: `(value) => {
          'show source';
          let v = 0;
          if (value > 0) {
            if (value < 1000) {
              v = value;
            } else if (value >= 1000 && value < 1000000) {
              v = (value / 1000).toFixed(0) + "K";
            } else {
              v = (value / 1000000).toFixed(0) + "M";
            }
          } else {
            v = value;
          }
          return v;
        }`,
      }

supervons avatar Apr 17 '25 07:04 supervons

解决了!感谢

wszhutianyu avatar Apr 17 '25 08:04 wszhutianyu