@gorrhom React本机底层表单-从另一个组件调用

um6iljoc  于 2023-01-05  发布在  React
关注(0)|答案(1)|浏览(146)

我正试图通过@gorhom在React Native中实现这个相对流行的底层表单。
我的目标是从另一个组件打开底部表单。我尝试按照这个答案-here。但是,我不明白在我的组件中调用它的可触摸的不透明onPress中发生了什么。
代码如下

    • 底部工作表模态组件**
export default function BottomSheetModalComponent({ref}) {

// ref
const bottomSheetModalRef = useRef<BottomSheetModal>(null);

// variables
const snapPoints = useMemo(() => ['25%', '50%'], []);

// callbacks
const handlePresentModalPress = useCallback(() => {
  ref.current?.present();
}, []);
const handleSheetChanges = useCallback((index: number) => {
  console.log('handleSheetChanges', index);
}, []);

// renders
return (
  <BottomSheetModalProvider>
    <View>
      <BottomSheetModal
        ref={ref}
        snapPoints={snapPoints}
        onChange={handleSheetChanges}
      >
        <View>
          <Text>Awesome 🎉</Text>
        </View>
      </BottomSheetModal>
    </View>
  </BottomSheetModalProvider>
);
};
    • 位置组件**
export default function LocationBar() {
   // Create Ref
  const userBottomSheetRef = useRef<BottomSheetModal>(null);

  // Pass ref into the bottom sheet component
  <LocationBottomSheet ref={userBottomSheetRef} snapPoints={["30%"]}/>

  return (
    <>
      <View style={{ flexDirection: "row" }}>
        <View style={styles.locationBar}>
          <Octicons style={styles.locationIcon} name="location" size={18} />
          <TouchableOpacity onPress={() => {

            //WHAT GOES HERE?

          }}>
            <Text style={{fontSize: 17, fontWeight: '600'}}>{userLocation}</Text>
          </TouchableOpacity>
          <Ionicons style={styles.chevronIcon} name="chevron-down" size={12} />
        </View>
      </View>
    </>
  );
}

先谢了

mqkwyuun

mqkwyuun1#

你是说

userBottomSheetRef.current?.present()

相关问题