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

NextJS14中Material-UI折线图仅hover后加载线条问题求助

解决NextJS 14中MUI折线图仅hover后显示线条的问题

以下是几种可行的解决方案,按优先级尝试:

1. 移除disableAxisListener属性

你设置的disableAxisListener={true}可能干扰了图表的初始渲染逻辑——这个属性原本用于禁用坐标轴交互监听,但在NextJS客户端组件的渲染流程中,会导致线条无法在页面加载时完成绘制。

修改后的代码:

'use client';
import { LineChart } from '@mui/x-charts'
import React from 'react'

const Chart = () => {
  return (
    <div className='w-full h-[400px]'>
        <LineChart
            xAxis={[{ data: [1, 2, 3, 5, 8, 10] }]}
            series={[
                {
                data: [2, 5.5, 2, 8.5, 1.5, 5],
                color: '#245BFF',
                },
            ]}
        />
    </div>
  )
}

export default Chart;

2. 明确容器的具体尺寸

如果父容器没有设置明确高度,w-full h-full可能无法让图表获取到正确的渲染尺寸,导致初始绘制失败。给容器设置固定高度(比如h-[400px])或者内联样式,确保图表有足够的绘制空间。

3. 手动触发组件挂载后的重绘

如果上述方法无效,可能是NextJS的Hydration机制导致图表初始化不完整,可以通过useRef和useEffect手动触发重绘:

'use client';
import { LineChart } from '@mui/x-charts'
import React, { useEffect, useRef } from 'react'

const Chart = () => {
  const chartRef = useRef(null);

  useEffect(() => {
    if (chartRef.current) {
      // 触发图表重绘
      chartRef.current.update();
    }
  }, []);

  return (
    <div className='w-full h-[400px]'>
        <LineChart
            ref={chartRef}
            xAxis={[{ data: [1, 2, 3, 5, 8, 10] }]}
            series={[
                {
                data: [2, 5.5, 2, 8.5, 1.5, 5],
                color: '#245BFF',
                },
            ]}
        />
    </div>
  )
}

export default Chart;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:01:12