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

Next.js中react-vertical-timeline-component报错原因及解决方法

错误原因分析

这个错误是由于react-vertical-timeline-component@3.3.3内置的react-intersection-observer版本过旧,与你当前使用的React 18/Next.js 14环境不兼容导致的。旧版本的react-intersection-observer代码中尝试访问React.prototype,但在React 18的模块系统下该值为undefined,从而触发报错。此外,项目中同时安装了独立的react-intersection-observer@9.8.1,导致嵌套依赖与顶层依赖版本冲突,进一步加剧了兼容性问题。

修复方案

以下是三种可行的修复方式,可根据你的需求选择:

1. 强制统一依赖版本

通过包管理器的版本覆盖功能,让react-vertical-timeline-component使用项目顶层安装的react-intersection-observer@9.8.1版本:

  • npm 用户:在package.json中添加overrides字段:
    "overrides": {
      "react-vertical-timeline-component": {
        "react-intersection-observer": "$react-intersection-observer"
      }
    }
    
  • Yarn 用户:在package.json中添加resolutions字段:
    "resolutions": {
      "react-vertical-timeline-component/react-intersection-observer": "^9.8.1"
    }
    

添加完成后,执行npm install或yarn install重新安装依赖。

2. 升级组件到兼容版本

将react-vertical-timeline-component升级到最新稳定版,新版本已更新内部依赖,适配React 18和Next.js 14:

npm install react-vertical-timeline-component@latest
# 或使用Yarn
yarn add react-vertical-timeline-component@latest

3. 禁用滚动检测功能

如果不需要组件的滚动可见性动画,可以直接禁用该功能,避免加载冲突的依赖:

import { VerticalTimeline, VerticalTimelineElement } from 'react-vertical-timeline-component';
import 'react-vertical-timeline-component/style.min.css';

export default function TimelinePage() {
  return (
    <VerticalTimeline disableScroll={true}>
      {/* 你的时间线元素 */}
      <VerticalTimelineElement
        icon={<div>Icon</div>}
        contentStyle={{ background: 'rgb(33, 150, 243)', color: '#fff' }}
      >
        <h3>示例条目</h3>
        <p>内容描述</p>
      </VerticalTimelineElement>
    </VerticalTimeline>
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:25:19