Добавление границы только на одну сторону компонента <Text /> в React Native (iOS)
Я столкнулся с какой-то странной проблемой с React-Native's <Text/>
компонент в iOS.
Я хотел подать заявку borderBottomWidth
стиль в <Text/>
компонент, но это не сработало. Тем не менее borderWidth
вариант сработал.
Работал
<Text style={{borderWidth:1}}> React Native </Text>
НЕ работал
<Text style={{borderBottomWidth:1}}> React Native </Text>
Есть ли способ применить только границу нижнего уровня в <Text/>
составная часть?
Спасибо!
Замечания:
Мне известны следующие упомянутые подходы для достижения этой цели, но в моем случае я должен был применить стиль только к <Text/>
составная часть.
- Мы можем попробовать упаковку
<View/>
к<Text/>
и применитьborderBottomWidth
стиль к<View/>
, (borderBottomWidth
отлично работает с<View/>
) - Добавление таких
<View/>
чуть ниже<Text/>
компонент, который может выглядеть как линия.
4 ответа
В настоящее время это невозможно. См. Следующую проблему RN: https://github.com/facebook/react-native/issues/29 и этот билет о проблемах с продуктом: https://productpains.com/post/react-native/add-borderwidth-left-right-top-bottom-to-textinput-/
Несмотря на то, что borderBottom не работает с компонентом Text, он сработал для меня с компонентом TextInput, просто установите для editable значение false и установите значение для желаемого текста следующим образом...
<TextInput
style={styles.textInput}
editable={false}
value={'My Text'}/>
const styles = StyleSheet.create({
textInput: {
borderBottomColor: 'black',
borderBottomWidth: 1,
}
});
<Text style={{
borderBottomWidth: 1,
borderBottomColor: 'red',
borderBottomStyle: 'solid'
}}>
React Native
</Text>
или
borderBottom: '1px solid rgba(219, 219, 219, 1)'
Теперь мы можем использовать:
const styles = StyleSheet.create({
textZone: {
borderTopRightRadius: 10,
borderTopLeftRadius: 10,
borderBottomRightRadius: 10,
borderBottomLeftRadius: 10
},
})