You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LineChart组件yAxisSide设为right后次日失效问题求助

LineChart yAxisSide 设置失效问题排查与解决

可能的解决步骤:

  • 固定动态计算参数:ExpectedValue()、ExpectedWeeks()、DataValues()这类函数每次组件渲染都会重新执行,若内部依赖的状态或数据发生变化,可能间接重置y轴配置。建议用useMemo缓存计算结果,避免不必要的重新生成:
    const memoizedExpectedValue = useMemo(() => ExpectedValue(), []);
    const memoizedExpectedWeeks = useMemo(() => ExpectedWeeks(), []);
    const memoizedDataValues = useMemo(() => DataValues(), []);
    
  • 添加强制初始化的key:给LineChart组件添加唯一key,确保配置变更时组件重新初始化,避免旧配置残留:
    <LineChart
      key="line-chart-right-axis"
      // 其他属性...
      yAxisSide={'right'}
    />
    
  • 验证属性合法性:检查所用图表库的官方文档,确认yAxisSide的有效值是否为小写'right',部分库可能要求大写'RIGHT'或存在其他同名属性(如yAxisPosition)覆盖配置。
  • 清理项目缓存:若使用React Native等框架,清理metro缓存或node_modules重新安装,排除编译缓存导致的配置不生效问题。
  • 排查样式冲突:临时移除yAxisOffset、xAxisLength等属性,逐步测试是否存在属性间的冲突导致右侧y轴被遮挡或未渲染。

修改后示例代码:

import { useMemo } from 'react';

// 缓存动态计算值
const memoizedExpectedValue = useMemo(() => ExpectedValue(), []);
const memoizedExpectedWeeks = useMemo(() => ExpectedWeeks(), []);
const memoizedDataValues = useMemo(() => DataValues(), []);

<LineChart
  noOfSections={sections}
  width={getWidth(77)}
  yAxisSide={'right'}
  height={getHeight(20)}
  yAxisOffset={memoizedExpectedValue}
  yAxisThickness={0}
  yAxisLabelSuffix="kg"
  xAxisLength={getWidth(65)}
  xAxisLabelTexts={memoizedExpectedWeeks}
  xAxisThickness={0}
  thickness={3.3}
  color="#50C878"
  curved
  hideRules={true}
  customDataPoint={customDataPoint}
  initialSpacing={getWidth(5)}
  spacing={getWidth(15)}
  stepValue={5}
  data={memoizedDataValues}
  key="line-chart-right-axis"
/>

内容的提问来源于stack exchange,提问作者Ehtisham Ahmad Kisana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:05:04