Styled Components와 React Native의 변종 Criando
Primeiro criaremos nosso componente Button, com os arquivos index.tsx e styles.ts
Em nosso 스타일, "ButtonVariant"에서 "ButtonVariant"에 대한 정보를 입력하고 변형에 대한 추가 정보를 내보내십시오. 수출 pois aproveitaremos essa tipagem para usar mais a frente em nosso index.tsx, após isso criaremos mais duas tipagem uma chamada de ButtonContainerProps e outra ColorTextProps는 다른 방식으로 소품 변형을 통과할 때 반응하지 않습니다.
export type ButtonVariant = 'primary' | 'secondary' | 'outline';
type ButtonContainerProps = {
variant: ButtonVariant
}
type ColorTextProps = {
variant: ButtonVariant
}
Logo após isso criaremos dois objetos o "backgroundVariant"e a "textVariant"esses dois objetos irão receber as cores de cada variação sendo que o "backgroundVariant"mudará a cor de fundo e o "textVariant"mudará a cor do texto do nosso botão.
const backgroundVariant = {
primary: '#16003B',
secondary: '#006E7F',
outline: 'tranparent',
}
const textVariant = {
primary: '#fcda3c',
secondary: '#fff',
outline: '#000',
}
Vamos no nosso index.tsx, adicionaremos uma nova tipagem chamada de ButtonProps ela vai receber uma "variant"do tipo ButtonVariant que é aquela mesma que criamos em nosso style, por isso colocamos aquele export nela para ser possível fazermos o import da mesma aqui no index.tsx. Button 개발 도구는 ButtonProps에서 변종 매개 변수를 선택하여 기본적으로 "primary"또는 "변형"또는 "primary"의 코어로 시작하는 버튼에 대한 변종을 찾을 수 있습니다.
태그로서 ButtonContainer와 Title은 아무 스타일도 없으며, 중요한 것은 태그를 통과하거나 성공을 위한 변형에 대한 변형입니다.
import { ButtonContainer, ButtonVariant, Title } from './styles';
type ButtonProps = {
variant: ButtonVariant;
};
export function Button({ variant = 'primary' }: ButtonProps) {
return (
<ButtonContainer variant={variant}>
<Title variant={variant}>Enviar</Title>
</ButtonContainer>
);
}
Styles.ts에서 모든 옵션을 사용할 수 있으며, iremos estilar nosso botão e capturar os valores das nossas variantes.
스타일이 지정된 구성 요소는 다음과 같이 구성 요소를 구성할 수 있으며, TouchableOpacity는 기본적으로 반응하고 ButtonConatainerProps는 ButtonConatainerProps를 사용할 수 없습니다. Para saber qual variante foi passada para o botão é que veem uma das vantagens de usar o styled components, utilizando “${}” podemos escrever javascript e assim acessar nossas props, nesse exemplo para definir o background-color 활용 o o objeto de backgroundVariant que criamos anteriormente para pegar o valor 16진법 da cor. Somado isso, com a utilização de javascript podemos fazer condições que estamos acostumados e assim definir novas propriedades para cada variação, no example usei o operator ternário para definir a cor do border do botão para cada variante.
export const ButtonContainer = styled.TouchableOpacity<ButtonContainerProps>`
width: 80%;
border-radius:5px;
padding: 18px;
margin-top: 50px;
${props => {
return css`
background-color:${backgroundVariant[props.variant]};
border: solid 1px ${props.variant === 'primary' ?
backgroundVariant[props.variant] : props.variant === 'secondary' ?
'#006E7F' : '#000'};
`
}}
`;
Para definir a cor do texto segue os mesmos princípios e funcionamentos citados anteriormente, a diferença é que aqui usaremos a tipagem de ColorTextProps e o objeto que passamos é o textVariant.
export const Title = styled.Text<ColorTextProps>`
text-align: center;
font-size: 14px;
font-weight: 700;
${props => {
return css`color:${textVariant[props.variant]};`
}}
`;
Por fim podemos usar nossos Buttons passando qual variação queremos, aqui está o resultado final:
결론
우리는 React Native와 함께 Styled Components를 유용하게 사용할 수 있으며 인터페이스를 확장하고 재사용할 수 있는 별칭으로 사용할 수 있습니다. Espero que tenham gostado valeu e fui.
Reference
이 문제에 관하여(Styled Components와 React Native의 변종 Criando), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wesleywcr/criando-variantes-de-botoes-com-styled-componets-e-react-native-8ag텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)