Soy nuevo en reaccionar + js y no puedo entender por qué se abre la hoja inferior antes de presionar Avatar onPress. ¡Por favor, ayúdame!
function Profile() { const sheetRef = React.useRef(null); return ( <SafeAreaView style={styles.container2}> <View style={styles.profileview}> <TouchableOpacity onPress={() => sheetRef.current.snapTo(0)}> <Avatar.Image source={require("../assets/defaultprofile.jpg")} size={80}/> </TouchableOpacity> <Title style={styles.text}>Name</Title> <Caption style={styles.caption}>@username</Caption> </View> <BottomSheet ref={sheetRef} snapPoints={[200, 150, 0]} borderRadius={10} renderContent={renderContent}/> </SafeAreaView> );}El paquete toma el primer índice de la propiedad 'snapPoints' como el punto predeterminado cuando se monta. Hay dos opciones para solucionarlo:
1- Puede cambiar el accesorio 'snapPoints' a [0, 150, 200]. Cuando hagas este cambio, tomará el primer índice (0), y se montará como 'cerrado' 2- La segunda opción es usar otra propiedad llamada 'initialSnap' que toma el índice del punto inicial, que es 2 para ti.
Entonces, para ser claros, aquí está el bloque de código que creo que es una solución:
function Profile() { const sheetRef = React.useRef(null); return ( <SafeAreaView style={styles.container2}> <View style={styles.profileview}> <TouchableOpacity onPress={() => sheetRef.current.snapTo(0)}> <Avatar.Image source={require("../assets/defaultprofile.jpg")} size={80}/> </TouchableOpacity> <Title style={styles.text}>Name</Title> <Caption style={styles.caption}>@username</Caption> </View> <BottomSheet ref={sheetRef} snapPoints={[200, 150, 0]} initialSnap={2} borderRadius={10} renderContent={renderContent} /> </SafeAreaView> );}Espero que ayude. La mejor de las suertes