заменить определенный текст представлением в ReactNative

#react-native #styling #text-styling

#react-native #оформление #оформление текста

Вопрос:

у меня есть текстовая строка с символами типа «__» (два подчеркивания) в строке всякий раз, когда я сталкиваюсь с двумя подчеркиваниями, я хочу заменить их определенным видом, подобным box, и отобразить его так, например:

str = "iam __ and i want to go to __"

итак, я хочу отобразить iam (хочу отобразить прямоугольное поле здесь), и я хочу перейти к (прямоугольное поле здесь)

я попытался использовать функцию разделения в js и разделить их на __ и попытался преобразовать jsx в массив на основе условия, но это отображалось в разных строках, есть ли лучший способ сделать это, код, который я пробовал:

 const stringsArr = str.split('__');
    const toRender = []
    for(let i=0;i<stringsArr.length;i  ){
        toRender.push(<Text styles={styles.emptyBlock} />)
        toRender.push(<Text>{stringsArr[i]}</Text>)
  }
  

Ответ №1:

По умолчанию компоненты будут отображаться друг под другом. Оберните View вокруг каждой текстовой строки и придайте ей стиль flexDirection: 'row' , чтобы они отображались параллельно. Если вы хотите, чтобы он работал как абзац, тогда примените flexWrap: 'wrap' то же самое.

Комментарии:

1. я уже устал от этого, но внутри текста есть n, из-за чего текст после этого опускается, а пробел поднимается вверх

2. В этом случае я бы рекомендовал сначала разделить строку с помощью 'n' и иметь View оболочку для каждого элемента этого массива.