使用Gorhom Bottom Sheet(React Native Expo)遇Cannot read properties of undefined错误
Gorhom Bottom Sheet 非TS环境
Cannot read properties of undefined (reading 'toString') 问题排查 这个报错的核心原因基本是sheetRef还没关联到BottomSheet组件实例,你就尝试调用了它的方法,或者ref绑定环节出了问题——和你用const sheetRef = useRef(null);这个非TS写法没关系,这个写法本身是没问题的。
给你几个具体排查方向:
确认BottomSheet组件正确绑定了ref
一定要确保组件上传递了ref属性,比如:<BottomSheet ref={sheetRef}> {/* 你的底部弹窗内容 */} </BottomSheet>不少人跟着视频操作时容易漏写这一步,导致ref一直是null。
避免在组件未挂载时调用ref方法
如果是在组件初始化阶段(比如useEffect外)直接调用sheetRef.current.expand()这类方法,肯定会报错,因为此时ref还没赋值给组件实例。正确的做法是把调用逻辑放到用户触发的事件里(比如按钮点击),或者放到useEffect中(确保组件挂载后执行),同时加上判断避免访问undefined:const handleOpenSheet = () => { if (sheetRef.current) { sheetRef.current.expand(); } };检查依赖版本兼容性
Expo环境下,Gorhom Bottom Sheet对react-native-reanimated、react-native-gesture-handler这些依赖的版本有严格要求。你可以确认下这些依赖的版本是否和当前安装的Bottom Sheet版本匹配,同时要确保Expo项目已经正确配置了这些依赖(比如reanimated的babel插件已经添加到babel.config.js里)。
内容的提问来源于stack exchange,提问作者Myrmelo
相关产品推荐
相关产品推荐

