Вы можете вкладывать текстовые элементы и назначать обработчики onPress для каждого вложенного текстового элемента, который вы хотите сделать нажимаемым (ссылка).
Смотри ниже. Есть внешний текстовый элемент, а внутри другой текстовый элемент, дочерний текстовый элемент имеет обработчик onPress, если вы запустите это, вы увидите «Но это так!» выполняет обработчик onPress при нажатии, нет необходимости в элементе Touchable *.
<Text style={{color: '#000'}}>
This part is not clickable
<Text onPress={() =>
{alert('but this is');}}
style={{color: '#00F'}}>
But this is!
</Text>
but this isn't
</Text>
Вы можете создать стиль для размещения любых элементов Text, имеющих обработчик / a onPress, чтобы сделать их другого цвета, как в вашем примере изображения.
Обратите внимание, это очень похоже на HTML, где вы бы вложили теги привязки в элемент p, например;
<p>
This part is not clickable
<a href="https://google.com"> but this is</a>
but this isn't
</p>
В вашем примере это будет что-то вроде этого (не проверено):
<Text style={{color: colors.black,
fontSize: 12,
fontWeight: 'normal',
marginTop: 10,
lineHeight: 18}}>
{strings.loginPrivacyTermsCondOne}
<Text style={{color: colors.primaryColor,
fontSize: 12,
fontWeight: 'normal',}}>
{strings.loginPrivacyTermsCondTwo}
</Text>
{strings.loginPrivacyTermsCondThree}
<Text style={{color: colors.primaryColor,
fontSize: 12,
fontWeight: 'normal'}}>
{strings.loginPrivacyTermsCondFour}
</Text>
<Text onPress={ this.termsOfService }
style={{color: colors.primaryColor,
fontSize: 12,
fontWeight: 'normal'}}>
{strings.loginPrivacyTermsCondFour}
</Text>
</Text>
В ответ на ваш комментарий приведем пример изменения цвета после нажатия на ссылку.
Короче говоря, я добавил булево поле для состояния, как только текст нажимается, я обновляю эту переменную состояния на true, тогда значение стиля текстового элемента имеет троичный оператор, который решает, какой цвет отображать текст в моем примере он будет отображаться как 'colors.primaryColor', если он еще не был нажат, и как 'красный' после нажатия.
class Foo extends Component {
constructor (props) {
super(props);
this.state = {
privacyClicked: false //Track if they have clicked privacy
};
}
render () {
return (
<Text onPress={ () =>{
this.setState({
privacyClicked: true
});
}} style={{color: (this.state.privacyClicked ? colors.primaryColor : 'red'),
fontSize: 12,
fontWeight: 'normal'}}>
{strings.loginPrivacyTermsCondFour}
</Text>
);
}
}
PS, форматирование на примере текста не очень хорошее.