React中Nivo Sunburst图表无报错却无法显示问题求助
Nivo Sunburst图表空白但Pie正常的排查方案
- 检查容器尺寸设置
Sunburst图表对容器尺寸的要求比Pie更严格,Pie图表可能会自动适配容器,但Sunburst需要明确的宽高值。可以直接在组件上指定尺寸:
<Sunburst width={800} height={800} // 其他配置项 />
或者给包裹组件的外层容器添加固定尺寸的CSS样式:
.sunburst-container { width: 800px; height: 800px; }
- 验证数据格式是否符合要求
Nivo的Sunburst必须使用嵌套树形结构数据,每个节点需要包含id、value,子节点放在children数组中;而Pie图表用的是扁平数组,两者格式差异很大。确保你的模拟数据是标准树形结构:
// 正确的Sunburst数据格式示例 const sunburstData = { id: 'root', value: 100, children: [ { id: '分类A', value: 30 }, { id: '分类B', value: 70, children: [ { id: '子分类B1', value: 40 }, { id: '子分类B2', value: 30 } ]} ] }
可以直接用Nivo官方提供的测试数据验证:
import { sunburstData } from '@nivo/sunburst'
- 排查颜色配置冲突
如果图表颜色和容器背景色一致,会导致视觉上的空白。可以显式指定颜色数组:
<Sunburst // 其他配置项 colors={['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4']} />
查看浏览器控制台的隐藏警告
编译无报错不代表运行时无问题,打开浏览器F12控制台的Console标签,过滤Warnings类型,查看是否有Nivo抛出的数据格式、尺寸不足等提示信息。确认Nivo版本的API兼容性
不同版本的Nivo对Sunburst的API可能有调整,比如部分版本需要用root属性传入数据,而非data:
// 旧版写法 <Sunburst data={sunburstData} /> // 新版写法 <Sunburst root={sunburstData} />
内容的提问来源于stack exchange,提问作者SteveAdmin
相关产品推荐
相关产品推荐

