Реагировать на собственные компоненты рендеринга из строковой переменной

1

Или, может быть, вопрос должен был быть, Как преобразовать строку в JSX?

В любом случае, я пытаюсь выполнить хакерство производительности в своем собственном приложении для реагирования, которое требует, чтобы я отображал собственные компоненты React из строковой переменной.

Например,

let item = "<View>
  <Text>
      This is an item
  </Text>
</View>";

Теперь в моей функции рендеринга я хочу сделать это так:

render() {
    return (
      <View>
        {item}
      </View>
    );
}

Как и сейчас, если я пытаюсь запустить приложение, он дает ошибку, потому что я пытаюсь сделать текст внутри компонента View. Если я попытаюсь обернуть элемент внутри текста перед рендерингом, он просто отобразит элемент как обычный текст на экране, со всеми тегами <View> и <Text> виде строк.

Как я могу сделать это так, чтобы теги из строки вели себя как нормальный компонент React Native вместо того, чтобы просто появляться в виде строк?

Я искал все, но не нашел решения.

Буду признателен за любые предложения.

Теги:
react-native
jsx

2 ответа

0

Попробуйте один из этих двух пакетов:

https://www.npmjs.com/package/acorn-jsx

https://www.npmjs.com/package/react-jsx-parser

Оба позволяют на лету анализировать строку в jsx (не имеют возможности тестировать в RN, но для React в сети работает нормально)

0

Если вы помещаете объект вместо строки, вы можете легко установить его внутри вида. Но если вы хотите использовать строку, вам нужно написать конвертер и извлечь каждый элемент в виде строки и проверить и преобразовать в него эквивалентное представление.
Если у вас есть реквизиты, вам также нужно их конвертировать (это будет немного сложнее!)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню