1.Исходное решение
Согласно официальной документации:
Text
поддерживает вложение, стилизацию и обработку касаний.
Так что если выВы добавляете TouchableOpacity
только для того, чтобы получить поддержку onPress
, тогда это совершенно бесполезно.В этом случае вы можете просто удалить его и обернуть все Text
блоки в родительский Text
, и ваша проблема будет решена.
Как вы правильно заметили, этот
оставляетПользователь без хорошей анимации, предоставленной <TouchableOpacity>
.
Я подумал о лучшем решении, и это было не так уж и далеко:)
2.Другое (и лучшее?) Решение
Просто оберните <TouchableOpacity>
и связанные <Text>
запятой в один <View>
с flexDirection: 'row'
и добавьте его в массив, к которому вы собираетесьrender.
render() {
let items1 = [];
for (let i = 1; i <= 100; i++) {
const text = makeid((i % 10) + 1);
items1.push(
<View style={{ flexDirection: 'row'}}>
<TouchableOpacity>
<Text style={{ fontSize: 18 }}>{text}</Text>
</TouchableOpacity>
<Text style={{ fontSize: 18 }}>, </Text>
</View>
);
}
return (
<View style={styles.li}>{items1}</View>
);
}
Таким образом, вы уверены, что запятая не отделяется от предыдущего слова, и вы получаете <TouchableOpacity>
анимацию.
Здесь вы можете найтирабочий пример.Надеюсь, это поможет!