Или, может быть, вопрос должен был быть, Как преобразовать строку в JSX?
В любом случае, я пытаюсь выполнить хакерство производительности в своем собственном приложении для реагирования, которое требует, чтобы я отображал собственные компоненты React из строковой переменной.
Например,
let item = "<View>
<Text>
This is an item
</Text>
</View>";
Теперь в моей функции рендеринга я хочу сделать это так:
render() {
return (
<View>
{item}
</View>
);
}
Как и сейчас, если я пытаюсь запустить приложение, он дает ошибку, потому что я пытаюсь сделать текст внутри компонента View
. Если я попытаюсь обернуть элемент внутри текста перед рендерингом, он просто отобразит элемент как обычный текст на экране, со всеми тегами <View>
и <Text>
виде строк.
Как я могу сделать это так, чтобы теги из строки вели себя как нормальный компонент React Native вместо того, чтобы просто появляться в виде строк?
Я искал все, но не нашел решения.
Буду признателен за любые предложения.
Попробуйте один из этих двух пакетов:
https://www.npmjs.com/package/acorn-jsx
https://www.npmjs.com/package/react-jsx-parser
Оба позволяют на лету анализировать строку в jsx (не имеют возможности тестировать в RN, но для React в сети работает нормально)
Если вы помещаете объект вместо строки, вы можете легко установить его внутри вида. Но если вы хотите использовать строку, вам нужно написать конвертер и извлечь каждый элемент в виде строки и проверить и преобразовать в него эквивалентное представление.
Если у вас есть реквизиты, вам также нужно их конвертировать (это будет немного сложнее!)