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

React开发中BottomSheet为何在Avatar的onPress触发前就被调用

问题排查与解决方案
  • 最常见根因:你使用的BottomSheet组件默认初始定位为snapPoints数组的第一个索引对应值,你当前配置的snapPoints = [200, 150, 0],索引0对应高度200,因此组件首次渲染就会默认展开到200高度,和Avatar的点击事件没有关联。
    解决方法:给BottomSheet组件添加initialSnapIndex属性,指定初始定位到索引2(对应高度0,即完全收起状态),修改后的组件代码如下:
<BottomSheet
    ref={sheetRef}
    snapPoints={[200, 150, 0]}
    initialSnapIndex={2}
    borderRadius={10}
    renderContent={renderContent}/>
  • 其他排查点:
    1. 确认没有在其他生命周期/全局事件回调中误操作sheetRef调用展开方法,比如useEffect中未正确添加依赖导致重复触发snapTo逻辑
    2. 你当前TouchableOpacity的onPress回调写法正确,用箭头函数包裹了方法调用,不会出现渲染时立即执行的问题,这部分无需修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:15:03