Irakliy
Vladimir
Привет всем! Есть url, в котором есть <p> параграфы с текстом. Как можно пропарсить или получить этот текст и перевести в нативный <Text> ? Буду очень благодарен
Никита
Привет всем! Есть url, в котором есть <p> параграфы с текстом. Как можно пропарсить или получить этот текст и перевести в нативный <Text> ? Буду очень благодарен
я для себя такое написал. Вроде работает тут правда недо-typescript, но пользоваться можно. Нужно ставить react-native-html-parser
import React from 'react';
import { TextStyle, Text, Linking, StyleSheet, TextProps } from 'react-native';
// @ts-ignore
import { DOMParser } from 'react-native-html-parser';
const styles = StyleSheet.create({
bold: {
fontWeight: '800',
},
h: {
},
});
interface Props {
children: string,
style: TextStyle,
}
export default class ReachText extends React.Component<Props> {
renderElement(elem: any, index: number) {
const nodeValue = elem.nodeValue && elem.nodeValue.trim();
const textProps: TextProps = {};
let value: undefined | React.ReactElement = undefined;
switch (elem.nodeName) {
case 'a':
textProps.onPress = () => {
const { attributes } = elem;
let url = '';
for (let i = 0; i < attributes.length; i++) {
if (attributes[i].name === 'href') {
url = attributes[i].value;
Linking.openURL(url);
return;
}
}
};
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}</React.Fragment>;
break;
case 'ul':
value = <React.Fragment>{nodeValue}{'\n'}{this.renderChilds(elem.childNodes)}</React.Fragment>;
break;
case 'li':
value = <Text>* {nodeValue}{this.renderChilds(elem.childNodes)}{'\n'}</Text>;
break;
case 'h':
textProps.style = styles.h;
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}{'\n'}</React.Fragment>;
break;
case 'strong':
textProps.style = styles.bold;
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}</React.Fragment>;
break;
case 'b':
textProps.style = styles.bold;
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}</React.Fragment>;
break;
case 'p':
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}{'\n'}</React.Fragment>;
break;
case 'br':
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}{'\n'}</React.Fragment>;
break;
case '#text':
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}</React.Fragment>;
break;
default:
value = <React.Fragment>{nodeValue}{this.renderChilds(elem.childNodes)}</React.Fragment>;
}
return (
<Text
key={index}
{...textProps}
>
{value}
</Text>
);
}
renderChilds(elems: any[]) {
if (elems) {
const childs = [];
for (let i = 0; i < elems.length; i++) {
childs.push(this.renderElement(elems[i], i));
}
return childs;
}
return null;
}
render() {
const text = this.props.children;
let doc = undefined;
if (text) {
doc = new DOMParser().parseFromString(text, 'text/html');
}
return (
<Text style={this.props.style}>
{doc ? this.renderChilds(doc.childNodes) : null}
</Text>
);
}
}
Vladimir
И еще вопрос. Как можно сделать такое? Ссылка на аудио есть .
Vladimir
Victor
Привет всем, у меня довольно абстрактный вопрос. Какие существуют бест практикс в организации стилей ?
Victor
Victor
В новом проекте я решил попробовать организовать глобальные стили таким образом
Victor
и уже в элементы через массив вставлять нужные глоабльные стили
Victor
мол style={[fonts.mt_regular_16, colors.white]}
Victor
В таком случае, при измении допустим шрифта при редизайне, придется прыгать по всем компонентам и ручками менять все это
Irakliy
мы используем отдельные файлы для каждого компонента + глобальные переменные (цвета, отступы и т.д), которые импортируются, при необходимости
Alexander
А почему бы что-нибудь для тем не юзать? Тот же styled-components идеально подойдет
Alexander
Всем привет. Товарищи. Кто то от react-native-device-info ловил?
Alexander
Я вроде androidx выпилил а при с борке релиза получа. Кстати при сборке дебаг версии все окей
Vitaly
что на обычном реакте что на RN ни одного компонента не ператащил, наверно я что то делаю не так )
у меня они все какие то уникальные из проекта в проект
Danila
достался от другого разраба пак компонентов, сначала воротил нос, а потом привык, что в каждом проекте одинаковые блоки)
Mal
Смотрю твои видосы! спасибо!
Anonymous
Всем привет! Коллеги, подскажите, пожалуйста, у меня приложение для прохождения тестов. Оно запрашивает с сервера html-код с текстом вопроса, и через 'react-native-render-html' я его отображаю. Но если в этом вопросе есть изображение, оно некрасиво подгружается после рендеринга. Как можно сделать предзагрузку изображения?
Anonymous
Пробую при помощи fetch загружать изображение, предварительно выделив url регуляркой, но что-то пока не получается, плюс не уверен, что приложение автоматически сохранится в кеш и загрузится сразу с него...
Выдает такую ошибку:
SyntaxError: Unexpected token � in JSON at position 0
at parse (<anonymous>)
at tryCallOne (W:\edu\rx\vo\node_modules\promise\setimmediate\core.js:37)...
Код предельно простой, казалось бы...
const imagePrel = await fetch('https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg', {
method: 'GET'});
Irakliy
uri же
Anonymous
Яков
Спасибо за хорошие видеолекции
Удачи и успехов во всем!
Kto?
Kto?
Anonymous
Нет, просто есть уже работаютщий сайт, стоит задача отображать html с вопросами, чтобы не переделывать все. Задача, в принципе, решена, только на слабом интернете картинки подгружаются рывками - вот хотелось бы показывать прелоадер, пока они грузятся.
Danila
Danila
и lazy loading
Vitaly
выношу, если знаю, что в проекте буду юзать не один раз, конкретно цель, чтобы перенести его в другой проект, не преследую, достаточно сложно сделать его настолько универсальным )
Vitaly
ну с хедером согласен, можно в теории заморочится, но пока что приходилось только в одном проекте юзать свой кастомный
Eugene
можно посмотреть на @feature_slices подход
🤔интересно разбивать компоненты по атомик в RN
Vitaly
пока что в трех проектах у меня максимально уникальные инпуты, там нечего общего выносить
Dmitry
Народ, а anroid эмулятор реально вообще с https подружить?
Danila
Можно как-то задавать детоксу какие тесты выполнять? (чтобы брал не все .spec файлы, а нужные сейчас)
Anonymous
Dmitry
тогда как в ios симуляторе все ок
Kto?
Anonymous
А работаете с мака?
Kto?
Там вроде есть такоц прикол, что нужно Днс сервер гугловскиц прописать
Kto?
Чтобы было нормально
Anonymous
Скорее всего ошибка какая-то. Что за эмулятор, не дружащий с хттпс
Dmitry
Nexus 5X API 28
Dmitry
Dmitry
Kto?
Dmitry
59
Кирилл
у меня тоже периодически отваливается - вот это помогает
Kto?
Kto?
59
Сделай вот это
MacOSX:
Open "System Preferences"
Click on "Network"
Select the network which your computer is connected and click on "Advanced"
Select "DNS", Select the "+" button, type "8.8.8.8"
Select "Ok" and "Apply"
Kto?
Должно помочь
Kateryna
кто знает как называется такая иконка?
Maxim
share
Daniil
кто что думает по поводу glamorous-native? Стоит использовать или были проблемы?
Kto?
:)
Vladimir
Обсуждали уже jettifier для react-native? https://github.com/mikehardy/jetifier#usage-for-source-files
Anton
Привет. Нужно сделать приложение с поддержкой автомоного режима, чтобы работало оффлайн. Подскажите пожалуйста делал ли кто нибудь, может есть что-то готовое для примера?
Anton
Денис
redux-persist
Dmitry
Anton
Dmitry
Вариантов масса
Vladimir
Dmitry
AsyncStorage, FS
Vladimir
Kto?
Anton
why?
большое количество данных. Или там пофиг?
Vladimir
там вроде было ограничение в 64к на ключ
Vladimir
в остальном - пофиг
Anton
Всем спасибо за помощь
сodecurry
Кто-нибудь использовал mqtt в качестве брокера?
GrafMine
ребят, есть такая логика работающая на вебе :
GrafMine
const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');