import styled, {css} from 'styled-components/native'; import {StyleProp, ViewStyle} from 'react-native'; const TextContainer = styled.View` flex-direction: row; flex-wrap: wrap; justify-content: space-around; `; const TextComponent = styled.Text` color: #333; font-size: 16px; line-height: 24px; `; interface TextComponentProps { parts: string[]; containerStyle?: StyleProp<ViewStyle>; } function Text(props: TextComponentProps) { if (props.parts !== undefined) { const {containerStyle} = props; delete props.containerStyle; return ( <TextContainer style={containerStyle}> {props.parts.map((text) => ( <TextComponent {...props}>{text}</TextComponent> ))} </TextContainer> ); } return <TextComponent {...props}>{props.children}</TextComponent>; } export default Text;
import Text from "./Text.tsx"; function render() { return <Text parts={["Long_word_will_wrap_exactly_", "here"]} /> }
react-native — Jul 15, 2021