reactjs - React Native - Bottom Sheet 始终显示在安装上

标签 reactjs react-native expo bottom-sheet

我正在将 React Native 与 Expo 结合使用,并尝试使用 Gorhom 的 Bottom Sheet 组件在用户单击按钮时显示 Bottom Sheet 。一切工作正常,除了 Bottom Sheet 坚持始终在屏幕安装上弹出,这显然很糟糕,它应该只在用户单击触发器(如按钮)时弹出。

这是我的组件:

import BottomSheet, { BottomSheetScrollView } from '@gorhom/bottom-sheet'

<BottomSheet
      ref={sheetRef}
      enableOverDrag
      handleIndicatorStyle={styles.handleIndicator}
      snapPoints={snapPoints}
      enablePanDownToClose
    >
      <BottomSheetScrollView>
        {children}
      </BottomSheetScrollView>
    </BottomSheet>

我尝试切换显示无/弯曲,但这使得弹出窗口不平滑并且非常突然:

containerStyle={[styles.container, {display: showSheet ? 'flex' : 'none'}]}

我已经浏览了整个文档两次,但没有发现任何可以帮助我的内容。

最佳答案

如果预期行为是在用户单击按钮时仅显示 Bottom Sheet ,那么它看起来更像是模式。有一个 BottomSheetModal 包装器/装饰器。

不要导入 BottomSheet,而是导入 BottomSheetModal。然后获取其引用并调用方法 bottomSheetRef.current.present()bottomSheetRef.current.close()。通过这种方式,所有显示/隐藏向上/向下动画将立即生效。

看看documentation完整的例子。

关于reactjs - React Native - Bottom Sheet 始终显示在安装上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74397656/

相关文章:

react-native - 无法在 vscode 上调试 expo 项目

javascript - Redux - 重置子树的状态

javascript - 列表内的渲染按钮

reactjs - react-three-fiber中如何提取和播放动画

react-native - react native : Perfectly align Text in circle

javascript - react : Cannot set property 'lastEffect' of null

javascript - 为什么允许使用 kebab-case 非标准属性,而不允许使用其他属性?以及如何在 TypeScript 中定义这样的类型?

javascript - 如何使用带有 onPress 的 React Native 制作简单的动画?

reactjs - 31.0.0 不是有效的 SDK 版本。选项为 32.0.0 UNVERSIONED

ios - 在世博会上发布 react native 应用程序时出现意外代码 404