팁 구성 요소 텍스트 de React Native
23987 단어 javascriptreactreactnative
Empecemos con el primer ejemplo de antemano avisando también que por defto el manejo de estilos en cuanto posicionamiento en React Native se usa Flexbox y uso posición natural es columnas en lugar de filas(rows) como en la web
El ejemplo es el siguiente: se tiene un contenedor donde se agrupan distintas propiedades de texto
아시 루체 엘 코디고
<View style={styles.avatarTextContainer}>
<Text fontWeight={'bold'} fontSize={'subheading'}>
{fullName}
</Text>
<Text
testID="repositoryDescription"
style={styles.textDescription}
color="textSecondary"
>
{description}
</Text>
<View style={styles.languageContainer}>
<Text color={'textWhite'}>{language}</Text>
</View>
</View>
로스 에스틸로스
const styles = StyleSheet.create({
container: {
backgroundColor: 'white',
padding: 5,
},
avatarContainer: {
flexDirection: 'row',
},
avatarTextContainer: {
justifyContent: 'space-between',
marginLeft: 15,
},
languageContainer: {
backgroundColor: theme.colors.primary,
padding: 4,
borderRadius: 2,
},
textDescription: {
flexShrink: 1,
},
counterContainer: { justifyContent: 'center', alignItems: 'center' },
footerItemContainer: {
flexDirection: 'row',
justifyContent: 'space-around',
marginTop: 10,
},
});
아시 루세 라 비스타
El detalle es que el atributo de lenguaje de programación que está de azul debería lucir como un botón y no ocupar toda la fila disponible, aunque se puede ajustar el tamaño del mismo en su sección de estilos llamado "languageContainer"usando width y height otra opción es usar la propiedad "align-self": "flex-start"de modo que ahora lucirá así:
Ahora observemos otro inconveniente con el texto de la descripción cuando este es muy largo, empiezan a desbordarse de la pantalla, aquí el comportamiento esperando es que pase a la siguiente línea pero luce así:
Esto lo podemos solucionar desde el contenedor principal del texto "avatarTextContainer"usando la propiedad de estilo "flexShrink": 1 para que el los hijos se logren encoger adecuadamente con lo que hora luce así:
코디고 파이널
import { Image, StyleSheet, View } from 'react-native';
import React from 'react';
import Text from './Text';
import theme from '../theme';
const RepositoryItem = ({ repository }) => {
const {
id,
fullName,
description,
language,
forksCount,
stargazersCount,
ratingAverage,
reviewCount,
ownerAvatarUrl,
url,
} = repository;
const counterKsuffix = (amount) => {
return amount >= 1000
? `${Math.round(amount / 100) / 10}k`
: String(amount);
};
return (
<View style={styles.container}>
<View style={styles.avatarContainer}>
<Image style={styles.avatarImg} source={{ uri: ownerAvatarUrl }} />
<View style={styles.avatarTextContainer}>
<Text fontWeight={'bold'} fontSize={'subheading'}>
{fullName}
</Text>
<Text
testID="repositoryDescription"
style={styles.textDescription}
color="textSecondary"
>
{description}
</Text>
<View style={styles.languageContainer}>
<Text color={'textWhite'}>{language}</Text>
</View>
</View>
</View>
<View style={styles.footerItemContainer}>
<View style={styles.counterContainer}>
<Text fontWeight={'bold'}>{counterKsuffix(forksCount)}</Text>
<Text>Forks</Text>
</View>
<View style={styles.counterContainer}>
<Text fontWeight={'bold'}>{counterKsuffix(stargazersCount)}</Text>
<Text>Stars</Text>
</View>
<View style={styles.counterContainer}>
<Text fontWeight={'bold'}>{counterKsuffix(ratingAverage)}</Text>
<Text>Rating</Text>
</View>
<View style={styles.counterContainer}>
<Text fontWeight={'bold'}>{counterKsuffix(reviewCount)}</Text>
<Text>Reviews</Text>
</View>
</View>
</View>
);
};
export default RepositoryItem;
const styles = StyleSheet.create({
container: {
backgroundColor: 'white',
padding: 5,
},
avatarContainer: {
flexDirection: 'row',
},
avatarImg: { height: 80, width: 80, borderRadius: 7 },
avatarTextContainer: {
justifyContent: 'space-between',
flexShrink: 1,
marginLeft: 15,
},
languageContainer: {
alignSelf: 'flex-start',
backgroundColor: theme.colors.primary,
padding: 4,
borderRadius: 2,
},
textDescription: {
flexShrink: 1,
},
counterContainer: { justifyContent: 'center', alignItems: 'center' },
footerItemContainer: {
flexDirection: 'row',
justifyContent: 'space-around',
marginTop: 10,
},
});
Reference
이 문제에 관하여(팁 구성 요소 텍스트 de React Native), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kevingo710/tips-componente-text-de-react-native-33l4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)