Size: a a a

React — русскоговорящее сообщество

2021 June 25

VC

Valera CSS_Junior in React — русскоговорящее сообщество
а это нормальный хук, который поля формы в локалсторадж сохраняет на время? что лучше исправить?
const useFormPersist = (key) => {
 const getValue = useCallback(() => {
   try {
     if (typeof localStorage !== "undefined") {
       const persistValue = JSON.parse((localStorage.getItem(key)));
       localStorage.removeItem(key);
       return persistValue;
     }
   } catch {
     return null;
   }
 }, [key]);

 const setValue = useCallback((value) => {
   try {
     if (typeof localStorage !== "undefined") {
       localStorage.setItem(key, JSON.stringify(value));
     }
   } catch {}
 }, [key]);
 return [getValue, setValue];
};
источник

DR

Dmitry Remezov in React — русскоговорящее сообщество
Лучше отделить функционал форм и функционал внешнего хранилища их значений
источник

DR

Dmitry Remezov in React — русскоговорящее сообщество
const initialData = useMemo(() => JSON.parse(localStorage.getItem(‘my-form-data’), []);
const handleChange = useCallback(({ values }) => localStorage.setItem(‘my-form-data’, JSON.stringify(values)), []);

return <Form initialData={initialData} onChange={handleChange} … />
источник

DR

Dmitry Remezov in React — русскоговорящее сообщество
Чето в таком духе кароч
источник

DR

Dmitry Remezov in React — русскоговорящее сообщество
Если хуком:
const [initialData, saveInitialData] = useFormPersist(‘my-form’);

return <Form initialData={initialData} onChange={saveInitialData} … />;
источник

A

Andu- in React — русскоговорящее сообщество
Привет, помогите написать регулярку - 3 слова с большой буквы через пробел
есть ^[А-ЯЁ][а-яё]*$  но она на 1 слово с большой буквы
нужно чтобы подходила под такой вариант - Иванов Иван Иванович
источник

SM

Soltukiev Malik in React — русскоговорящее сообщество
У нашей компании есть сайт свой, и когда мы обновляем сайт, пересобираем с новыми изменениями, то у пользователей старая версия остается из-за кеша, как такое можно решить, кто-нибудь сталкивался с подобным? Если обновить страницу несколько раз, то уже старый кеш уходит, и актуальная версия появляется у пользователей
источник

PM

Pavel Mellonges® in React — русскоговорящее сообщество
что это за стиль стилизации? Похож на scss
источник

DS

Digital State in React — русскоговорящее сообщество
думаю это у тебя кэш в браузере остается.
тести с режима "инкогнито", тогда это будет тру тест 1го визита на сайт случайного пользователя
источник

SM

Soltukiev Malik in React — русскоговорящее сообщество
так я же и написал, что кеш)
источник

DS

Digital State in React — русскоговорящее сообщество
или возможно это хостинг тормозит с обновой
источник

DS

Digital State in React — русскоговорящее сообщество
можно в поддержку подолбить им
источник

SM

Soltukiev Malik in React — русскоговорящее сообщество
там кеш остается
источник

SM

Soltukiev Malik in React — русскоговорящее сообщество
челу надо несколько раз обновить страницу, чтобы кеш ушел
источник

P

PavelDmitrenko in React — русскоговорящее сообщество
Использовать бандл (js и css) с уникальным названием (например, как хэширующая функция от контента всех файлов). Тот же вебпак поддерживает такое "из коробки"
Но это не избавит от необходимости разового рефреша страницы (лишь позволит избежать "глубокого" кэширования на уровне названия ресурса)
В своё время на вебсокетах делал следующее: при обновлении контента была возможность послать всем подключенным пользователям команды на полный рефреш страницы. Жестко по отношению к пользователям, но, при необходимости, рабочий вариант.
Как более простая альтернатива такому варианту можно реализовать проверку наличия изменений через сервер приложений: тонкий клиент (браузер) по таймеру шлет запросы на бэк, получает, например, хэш  актуального пака, и, если этот хэш не совпадает с текущим, рефрешит.
источник

SM

Soltukiev Malik in React — русскоговорящее сообщество
понял только про момент с бандлом вебпак, мол там что-то надо ковырять, но у меня cra)
источник

SM

Soltukiev Malik in React — русскоговорящее сообщество
кстати, про последнее, как этот рефреш производить? Это сложно?
источник

ES

Eugene Stepanyuk in React — русскоговорящее сообщество
кто сможет подсказать, почему у меня не сохраняет pdf файл с данными на русском языке? на англ все норм.
Использую @react-pdf/renderer, делаю по доке
Font.register({ family: 'Roboto', src: 'https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap' });
const styles = StyleSheet.create({
   page: {
       fontFamily: 'Roboto',
       fontWeight: 'thin',
       flexDirection: 'row',
       backgroundColor: '#E4E4E4'
   },
   section: {
       margin: 10,
       padding: 10,
       flexGrow: 1
   }
});

const MyDocument = (
       <Document>
           <Page size="A4" style={styles.page}>
               <View style={styles.section}>
                   <Text>Сессия #1</Text>
               </View>
               <View style={styles.section}>
                   <Text>Сессия #2</Text>
               </View>
           </Page>
       </Document>
   );

const [instance, updateInstance] = usePDF({ document: MyDocument });

return(
<a href={instance.url} download="test.pdf">
                           Download
                       </a>
);


или может кто знает еще варианты, как можно создать pdf файл
источник

M

Mark in React — русскоговорящее сообщество
компонент PDFDownloadLink нужен тебе, скорее всего
https://react-pdf.org/advanced
источник

P

PavelDmitrenko in React — русскоговорящее сообщество
я делал очень просто (примитивно) — window.location.reload();
наверняка как-то можно перезагрузить скрипты и на "горячую" — но для этого, уверен, понадобится, соответсвующая подготовка этих скриптов. с CSS, думаю, проще.
В общем, я жестко перезагружал всю страницы, с потерей пользовательского стейта
источник