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

Expo集成Storybook启动触发栈溢出错误求助

React Native Expo集成Storybook触发栈溢出错误排查方案
  • 检查版本兼容性:
    不要盲目调整react-native或Expo版本,先确认Storybook版本与当前Expo SDK版本的适配性。比如Expo SDK 49需搭配Storybook 7.x系列,SDK 50则需要Storybook 7.3及以上版本,核对官方版本适配矩阵即可。

  • 排查App.tsx的分支逻辑:
    确保Storybook的启动分支与主App逻辑完全隔离,避免循环导入或递归调用。比如若存在组件导入了App.tsx中的Storybook相关代码,就会触发栈溢出。推荐用环境变量做分支判断:

    import { StorybookUIRoot } from './.storybook';
    import MainApp from './src/MainApp';
    
    export default function App() {
      if (process.env.STORYBOOK_ENABLED === 'true') {
        return <StorybookUIRoot />;
      }
      return <MainApp />;
    }
    

    同时检查是否存在组件与App.tsx之间的循环引用。

  • 清理依赖与缓存:
    执行以下命令清除可能存在的缓存或依赖冲突:

    npx expo start --clear
    rm -rf node_modules && npm install
    rm -rf .expo
    
  • 检查Storybook配置文件:
    查看.storybook/main.ts和.storybook/preview.ts,确认是否存在插件重复注册、装饰器无限递归调用的情况。比如某个装饰器内部反复调用自身,就会触发栈溢出。

  • 排查组件递归问题:
    检查已添加到Storybook的所有组件,确认是否存在组件自身调用自身且无终止条件的情况,这类组件在Storybook渲染时会直接触发栈溢出。

内容的提问来源于stack exchange,提问作者Janaki Rajesh Duvvuri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:47:15