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

使用pure-react-carousel创建轮播组件时出现RangeError: Maximum call stack size exceeded错误求助

pure-react-carousel创建轮播组件时出现RangeError: Maximum call stack size exceeded错误求助

Hey there! Let's dig into that infinite loop error you're facing with pure-react-carousel. That "Maximum call stack size exceeded" error almost always means the component is stuck in a cycle of nonstop re-rendering, so let's go through some fixes:

1. Remove the isIntrinsicHeight prop (most likely culprit)

The isIntrinsicHeight attribute is designed to make the carousel auto-adjust to its content's height, but in some cases, it can trigger an infinite loop of height recalculations. Let's replace it with a fixed height instead:

import React from 'react';
import { CarouselProvider, Slider, Slide, ButtonBack, ButtonNext } from 'pure-react-carousel';
import 'pure-react-carousel/dist/react-carousel.es.css';

const CarouselTest = () => {
    return (
        <CarouselProvider
            visibleSlides={1}
            step={1}
            totalSlides={3}
            style={{ height: '400px', width: '100%' }} // 设置固定高度和宽度
        >
            <Slider>
                <Slide index={0}>First Slide</Slide>
                <Slide index={1}>Second Slide</Slide>
                <Slide index={2}>Third Slide</Slide>
            </Slider>
            <ButtonBack>Anterior</ButtonBack>
            <ButtonNext>Próximo</ButtonNext>
        </CarouselProvider>
    );
};

export default CarouselTest;

2. 降级到pure-react-carousel的稳定版本

部分较新的库版本引入了会导致无限重渲染的bug,尝试回滚到已知稳定的版本比如1.27.6:

npm install pure-react-carousel@1.27.6

3. 验证React版本兼容性

确保你的React版本(尤其是React 18)和当前使用的pure-react-carousel版本完全兼容。大部分情况下不会有问题,但排查一下可以排除边缘情况。

错误原因说明

这里的栈溢出错误是由无限重渲染循环触发的。当启用isIntrinsicHeight时,如果内容高度检测逻辑没有正确限制,轮播组件会持续重新计算高度,导致无休止的重渲染,最终填满调用栈。

备注:内容来源于stack exchange,提问作者Janderson Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:04:51