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

React中Syncfusion SparklineComponent组件渲染空白如何解决

问题根因

Sparkline组件不渲染由3个配置错误导致:

  • 字段映射错误:配置的xName="X"、yName="Y"和数据源实际字段xval、yval名称、大小写均不匹配,组件无法读取绘图数据
  • 依赖导入缺失:代码中使用的Inject模块、SparklineTooltip服务未从依赖包中显式导入,组件初始化流程中断
  • 容器尺寸问题:设置height: 100%、width: 100%时,如果父元素没有设置明确可计算的宽高,组件渲染尺寸会被计算为0,视觉上看不到任何内容
修复后代码
// 补全缺失的依赖导入
import { SparklineComponent, Inject, SparklineTooltip } from '@syncfusion/ej2-react-charts';

// 父容器必须设置明确宽高
<div style={{ width: 300, height: 100 }}>
  <SparklineComponent
    id="sparkline"
    height="100%"
    width="100%"
    lineWidth={2}
    valueType="Numeric"
    dataSource={[
      { x: 0, xval: 2005, yval: 20090440 },
      { x: 1, xval: '2006', yval: 20264080 },
      { x: 2, xval: '2007', yval: 20434180 },
      { x: 3, xval: '2008', yval: 21007310 },
      { x: 4, xval: '2009', yval: 21262640 },
      { x: 5, xval: '2010', yval: 21515750 },
      { x: 6, xval: '2011', yval: 21766710 },
      { x: 7, xval: '2012', yval: 22015580 },
      { x: 8, xval: '2013', yval: 22262500 },
      { x: 9, xval: '2014', yval: 22507620 },
    ]}
    // 修正字段映射,和数据源字段名完全匹配(注意大小写)
    xName="xval"
    yName="yval"
    type="Line"
    fill={themeColor}
    border={{ color: themeColor, width: 2 }}
  >
    <Inject services={[SparklineTooltip]} />
  </SparklineComponent>
</div>
注意事项
  • JS对象属性区分大小写,组件配置的字段名必须和数据源字段名完全一致
  • Syncfusion组件的功能服务、注入模块必须显式导入后才能正常使用
  • 使用百分比作为组件宽高时,必须保证父容器有明确的宽高属性,否则组件无法获得渲染尺寸

内容的提问来源于stack exchange,提问作者Amr Hussein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:51:21