Тимофей 🛴
)
Может оказаться и не в этом проблема, проверяй в каком компоненте падает, и почему у него может быть какой то компонент undefined, может какое то условие не учел которое в проде срабатывает.
Yar
зависит от проекта
🦜
смотря что будешь использовать для ssr или пилить свое
Vladimir
Всем привет, прошу помочь: import React, { useState, useEffect } from "react"; import PropTypes from "prop-types"; import AroundButton from "Components/Buttons/AroundButton"; import { timer } from "Common/Utils/date"; function WebinarStatus(props) { const { t, onClick, state, date } = props; const [diff, setDiff] = useState({}); const timerHandler = () => { console.log("timerHandler") setDiff(timer(date)); }; useEffect(() => { const timerId = setInterval(timerHandler, 2000); return clearInterval(timerId); }, [diff]); if (state === "Registered") { console.log("diff:", diff) } return null; } WebinarStatus.defaultProps = { onClick: () => null, t: text => text, }; WebinarStatus.propTypes = { / Состояние вединара */ state: PropTypes.oneOf([ / Регистрация открыта */ "Open", / Регистрация закрыта */ "Closed", / Зарегестрирован */ "Registered", / Вебинар завершен */ "Finished", ]), / Дата вебинара */ date: PropTypes.string, / Ссылка на вебинар */ link: PropTypes.string, / Обработчик клика по кнопке регистрации на вебинар */ onClick: PropTypes.func, /** Функция транслятор строк */ t: PropTypes.func, }; export default WebinarStatus; есть такой код, я не понимаю почему setInterval не вызывает timerHandler в эффекте?
🦜
Всем привет, прошу помочь: import React, { useState, useEffect } from "react"; import PropTypes from "prop-types"; import AroundButton from "Components/Buttons/AroundButton"; import { timer } from "Common/Utils/date"; function WebinarStatus(props) { const { t, onClick, state, date } = props; const [diff, setDiff] = useState({}); const timerHandler = () => { console.log("timerHandler") setDiff(timer(date)); }; useEffect(() => { const timerId = setInterval(timerHandler, 2000); return clearInterval(timerId); }, [diff]); if (state === "Registered") { console.log("diff:", diff) } return null; } WebinarStatus.defaultProps = { onClick: () => null, t: text => text, }; WebinarStatus.propTypes = { / Состояние вединара */ state: PropTypes.oneOf([ / Регистрация открыта */ "Open", / Регистрация закрыта */ "Closed", / Зарегестрирован */ "Registered", / Вебинар завершен */ "Finished", ]), / Дата вебинара */ date: PropTypes.string, / Ссылка на вебинар */ link: PropTypes.string, / Обработчик клика по кнопке регистрации на вебинар */ onClick: PropTypes.func, /** Функция транслятор строк */ t: PropTypes.func, }; export default WebinarStatus; есть такой код, я не понимаю почему setInterval не вызывает timerHandler в эффекте?
код на gist
🦜
столкнешься с тем, что есть компоненты, которые не работают на сервере. Еще нужно будет искать решение, как готовить стор редакса на сервере
Vladimir
код на gist
https://gist.github.com/VladimirTkachev/6ec15f1004f4bbdfd27395873e780854
Dmitriy
https://gist.github.com/VladimirTkachev/6ec15f1004f4bbdfd27395873e780854
https://github.com/donavon/use-interval/blob/master/src/index.js
Vladimir
https://github.com/donavon/use-interval/blob/master/src/index.js
Спасибо, сейчас посмотрю
🦜
потому что await у тебя и диспатч не должен срабатывать и падать либо в catch, либо в finally
Oleg
кто-то в курсе, фонт асом действительно такой медленный или это в коде что-то не то?
Oleg
Выкинь это гавно
а что вместо него лучше взять?
Амаль
Nikolai
а что вместо него лучше взять?
Нормальные svg иконки
Misha
а что вместо него лучше взять?
https://icons8.com/good-boy-license 😎
Oleg
Нормальные svg иконки
а как их лучше подключить? в плане, если просто вставить тег, то это большие импорты + неудобные свг. по идее.
nnbphkqujhjkynr
Если у меня есть ссылка, что с одного роута /route, переходит на роут / и должен проскролить к селектору, я написал метод, что это делает scrollToSelector = () => { document.querySelector(".thisselector").scrollIntoView({ behavior: "smooth" }) }; в линке я вызываю его ```{href: "/", label: "link", click: this.scrollToSelector } Но после нажатия переходит на / но не скролит к селектору ное сли нажать еще раз то скролит Как реализовать в один клик?
🦜
если нужно дохуя иконок то вот https://materialdesignicons.com/
PP
Добрый день, около года пропуcтил новшеств в реакте, добавилось множество изменений для работы со стэйтом/ пробрасыванию глобальнога стэйта и т.д. вопрос, есть ли еше смысл в редаксе?
Oleg
если cra то в доке описано как
import logo from './logo.svg'; <img src={logo} className="App-logo" alt="logo" /> так?
Oleg
в целом, наверное, так лучше.
🦜
import logo from './logo.svg'; <img src={logo} className="App-logo" alt="logo" /> так?
import { ReactComponent as Logo } from './logo.svg'; const App = () => ( <div> {/* Logo is an actual React component */} <Logo /> </div> );
Oleg
import { ReactComponent as Logo } from './logo.svg'; const App = () => ( <div> {/* Logo is an actual React component */} <Logo /> </div> );
да, уже нашёл. то есть по сути, лучше всего скачать все svg на локал? ну то есть, не из нод модулс?
🦜
да, уже нашёл. то есть по сути, лучше всего скачать все svg на локал? ну то есть, не из нод модулс?
ну как хочешь, главное клиенту не отдавай все, чтобы он лишнее не качал
Dima
когда записываю и забираю текст с localStorage добавляет кавычки. Как от этого избавиться?
Looch
Оно серилизует
Eldar
Ребят проблема с typescript. Как можно побороть эту проблему? даже error && error.stack не воспринимает вебшторм - это потому что в конфиге typescript стоит "strictNullChecks": true
Max
кто использует linaria + gatsby.js. Как пофиксить error "Make sure you are not using a browser or Node specific API." ?
Eldar
Я пробовал и на строгие проверки, это не помогает
Eldar
тернарка или дефолтное значение
default у меня null поэтому и ругается. и никакие проверки не помогает у меня даже самая очевидная првоерка стоит error && error.***
Eldar
проблема скорее всего с вебштормом так как сборки и компилятор тайпскриптовый не ругается
Yar
нет. у вас ошибка, вы разрешаете тип Null. если тип null то у него нет stack
Eldar
нет. у вас ошибка, вы разрешаете тип Null. если тип null то у него нет stack
тогда я не понял в чем проблема, если объяснишь буду рад
Yar
у вас неправильно тип описан
Andrey
Всем привет. Есть у кого опыт настройки source-map для сентри с помощью @sentry/webpack-plugin?
Andrey
при сборке проекта, сыпится такая ошибка Error: Command failed: ***/releases/201909161343543534/front/node_modules/@sentry/cli/sentry-cli --version [11:57:10] 01 error: 11:1 Expecting "[Some('='), Some(':')]" but found EOF.
Dmitrii
Можно ли без eject’a добавить в CRA поддержку pipeline оператора, так чтобы eslint не ругался? Через customize-cra получается добавить как плагин в бабель, добавляю в кастомный конфиг eslint’a parser: ‘babel-eslint’, но не помогает
Dima
как сделать синхронный localStorage на несколько вкладок?
A
локалсторадж же вроде глобальный относительно сайта, нет?
Looch
как сделать синхронный localStorage на несколько вкладок?
https://developer.mozilla.org/en-US/docs/Web/API/Window/storage_event
🦜
как сделать синхронный localStorage на несколько вкладок?
https://medium.com/@mfreundlich1/syncing-localstorage-across-multiple-tabs-cb5d0b1feaab
🦜
спасибо
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
Sm•ok
https://medium.com/@mfreundlich1/syncing-localstorage-across-multiple-tabs-cb5d0b1feaab
Вопрос. Они же и так синхронизированы ? меняешь в одном, меняется в другой вкладке
Sm•ok
или тут нужна не синхронизация стореджей, а синхронизация данных в ридаксе, который изначально тянул данные из стореджа
Roman
Ребят, всем привет, вопрос) Можно ли как-то следить за состоянием стора так, чтобы при изменении его вызывать определенный метод в компоненте?
Roman
оу, звучит, как костыль 😅
Roman
с useEffect игрался, не получилось..
Alex
Roman
юзаю header с материал юа, там с хука useState метод, который сетить значения для нужной отрисовки подчеркивания в линках. Так вот, если я с другого компонента хочу перейти на определенный роут, я пушу в хистори значение, меняю стор. И в этот момент изменения стора, нужно вызвать тот самый метод с хука и засетить значение.
Bohdan
В селектор реселекта нельзя передать аргумент какой-то еще?
Михаил
El
Почему такая штука не работает? import { getDaily, getHourly, getMinute } from '../actions/getData'; const [method, setMethod] = useState(getDaily); useEffect(() => { method(match.params.currency.toUpperCase()); }, [match.params.currency, method]); Идея в менять метод на переменной method по клику на некую кнопку.
Maksim
потому что useState(() => getDaily)
El
Спасибо, помогло.
El
Как теперь поменять метод в method? Попробовал const [method, setMethod] = useState(() => getDaily); useEffect(() => { method(match.params.currency.toUpperCase()); }, [match.params.currency, method]); setMethod(() => getHourly); получил много loop'ов реренедера.
🌿Alex
Пацаны и пацанессы, кто что думает про https://preactjs.com/ ? кто-нить пробовал на проде?
El
useEffect(() => { setMethod(match.params.currency.toUpperCase()); }, [match.params.currency, method]);
Хорошо бы, да текущий метод из method нужно запустить, он запускается, как понимаю, при смене method в setMethod.
Dru
Добрый день простите что влезаю с вопросом