𝖃𝖊𝖓
Он и так доступен
ну, у меня череда варнингов была о зависимостях, передаваемых в useEffect, и я решил, что не стоит его вот так напрямую использовать там
Denis
мне нужно предыдущий стейт читать
И вообще, если в useeffect вызывается изменение стейта на то же значение, значит вы, как минимум, не совсем правильно используете его, я думаю имеет смысл вынести логику эту в отдельный эффект который будет форситься только на изменение необходимых полей
Василий
скажите как можно выявить какой пакет от какого зависит? есть проект с sass пакетом - и непонятно кто вызвла зависимость от него - в Package.json зависимости нет
Alexey
Это чат по реакту. Angular и Vue - в других
Iaroslavna
Всем привет. Можете посоветовать style guid generator для реакта (только не по гуглу, а из личного опыта, если кто пользовался. Или может быть у вас под рукой есть ссылка на норм статью с отзывом по таким? Буду очень признательна наводкам, опыта с генераторами не было. (желательно с возможностью рендеринга не всех компонентов, а по списку (выбору)).
Maxim
И варнинг был как раз по этому вопросу, а сейчас у вас в стейт кладётся функция
Нет, коллбэк это корректное использование api: https://reactjs.org/docs/hooks-reference.html#functional-updates
Denis
Нет, коллбэк это корректное использование api: https://reactjs.org/docs/hooks-reference.html#functional-updates
o_O вот те раз а зачем, если оно и так есть count +- 1 тоже замечательно работает
Iaroslavna
Styleguide? Docz, storybook
Я так понимаю docz не ищет компоненты и не генерирует сам, или я ошибаюсь?
𝖃𝖊𝖓
И варнинг был как раз по этому вопросу, а сейчас у вас в стейт кладётся функция
я так понял, что если в setState передать функцию, то он вызовет ее с предыдущим стейтом в аргументе, и ответ положит в новый стейт
Тимофей 🛴
Я так понимаю docz не ищет компоненты и не генерирует сам, или я ошибаюсь?
Он ищет mdx, все такие плейграунды могут искать по паттерну или только строго перечисленные
𝖃𝖊𝖓
И вообще, если в useeffect вызывается изменение стейта на то же значение, значит вы, как минимум, не совсем правильно используете его, я думаю имеет смысл вынести логику эту в отдельный эффект который будет форситься только на изменение необходимых полей
Тогда добавлю конкретики Компонент - таймер обратного отсчета (чч:мм:сс). В useEffect подписывается на глобальный ежесекундный тикер. Если время больше часа, то секунды не отбражаются, и перерендериваться он должен только раз в минуту Так вот стейте хранится сформированная строка, и если она по факту поменялась, то надо рендерить
Denis
Тогда добавлю конкретики Компонент - таймер обратного отсчета (чч:мм:сс). В useEffect подписывается на глобальный ежесекундный тикер. Если время больше часа, то секунды не отбражаются, и перерендериваться он должен только раз в минуту Так вот стейте хранится сформированная строка, и если она по факту поменялась, то надо рендерить
ответ в предложении "Так вот стейте хранится сформированная строка, и если она по факту поменялась, то надо рендерить" useEffect(() => {}, [СТРОКА, КОТОРАЯ ДОЛЖНА ПО ФАКТУ ПОМЕНЯТЬСЯ]) только не стоит забывать о том, что эффект вызывается после рендера, и новые пропсы в комопнент, как я понял, все равно летят
Face
Народ, а можно ли инструментами реакта, как-то поймать клик вне функционалки, но эвентом внутри нее
Pasha
Не совсем понимаю, что именно вы имеете в виду. Оба подхода (ls и cookies) имеют право на существование, оба используются в продакшене, у каждого есть свои кейсы для применения.
Локалсторейдж доступен для взаимодествия JSом, соответственно своровать его намного проще, чем кукисы и это не безопасно
Maxim
Локалсторейдж доступен для взаимодествия JSом, соответственно своровать его намного проще, чем кукисы и это не безопасно
Ну опять пошли по кругу. Нужно исходить из того, каковы реальные кейсы XSS в вашем приложении.
Maxim
Я считаю, что куки - для публичных приложений, ls - для внутренних. Но и тут могут быть исключения.
Pasha
Ok, make sense
𝖃𝖊𝖓
так, разбираемся, что значит глобальный тикер?
общий EventEmitter, который генерит событие каждую секунду
Denis
общий EventEmitter, который генерит событие каждую секунду
спрашивать почему эмиттер, а не таймер, наверное, не буду да, за пределами
𝖃𝖊𝖓
могу скинуть гист с текущей реализацией
𝖃𝖊𝖓
+
https://gist.github.com/xense/f17eaa9774b0aede069264a8fd20b990 только не кидайтесь какашками, там useRef сейчас используется для сравнения текущих значений с новыми
Denis
https://gist.github.com/xense/f17eaa9774b0aede069264a8fd20b990 только не кидайтесь какашками, там useRef сейчас используется для сравнения текущих значений с новыми
дефайнить функицю и потом ее сразу вызывать я думаю не стоит, да, я увидел, что там самовызов внутри тела, отбой здесь // triggers on unmount не совсем верно, в частности этот колбек будет вызываться перед каждым выполнением этого же эффекта, триггер на анмаунт формально будет только при передаче в эффект пустого массива
Sergey
Новости из мира разработки и использования React.js • React Concurrent Mode • Пререлизный канал React • 5 лет опыта с React • Next.js: Persistent Layout Patterns https://t.me/this_week_in_react
Denis
@x_e_n как часто пропсы обновляются в компоненте?
Denis
редко
и все же, есть ли какой-то сакральный смысл в использовании эмиттера?
𝖃𝖊𝖓
и все же, есть ли какой-то сакральный смысл в использовании эмиттера?
он для многих глобальных ивентов используется, вот и решил его для секунд юзать. Это игра, там много моделей и куча ивентов гуляет в принципе.
Denis
конечно нет
а когда приходят новые пропсы в компонент?
𝖃𝖊𝖓
а когда приходят новые пропсы в компонент?
когда меняется состояние модели. например процесс баффнули, время окончания сдвинулось на 10 мин
Denis
когда меняется состояние модели. например процесс баффнули, время окончания сдвинулось на 10 мин
я просто пытаюсь понять зачем эмиттер нужен здесь задача таймера просто показать циферки, ему один раз отдали цифру, ЕТА как правило, и по таймауту рендерится каждую минуту (секунду) то есть вы передали туда finishTimeMs в стейт кинули буль по типу изСекондсЕнейблд и вешаете в эффекте таймаут в секунду который обновляет этот буль если меньше чем 3600 сeк
Anonymous
Мне вот интересно , почему в обычном css достаточно указать свойство ховер для смены цвета, а тут столько всего ради точно такого же? Неужели нельзя ка то это все упростить, что бы каждый раз одно и тоже не делать?
🦜
как можно назвать одним словом состояние never turned on?
Anonymous
https://m.youtube.com/watch?v=RcO7XbRdOHY
Anonymous
Какой вобще смысл в этом коде, для чего его так много ради какой то одной фигни?
Тимофей 🛴
Anonymous
Давай конкретно, видео врядли кто то смотреть будет
Конкретно - каждый раз одно и тоже, в коде +- такое чувство что специально сделано что бы отсеить тех у кого нет исходников на 90% кода
🦜
pristine
спс
js - one love
https://stackblitz.com/edit/react-wret9z
Oleg
Ребят, где вы храните доступы к сайтам? notion не очень удобен
js - one love
Maksim
почему ошибка?
циклическая зависимость
js - one love
а как использовать контекст в другом компоненте?
Maksim
а как использовать контекст в другом компоненте?
устранить циклическую зависимость
Oleg
keepass
а есть что то современное? в виде веб сайта или расширения для хрома
js - one love
https://stackblitz.com/edit/react-wret9z
js - one love
подскажите что не так
Oleg
lastpass
платно. есть что то бесплатное? нужно скорее не просто сохранение паролей, а хранение рабочих данных включая доступы к хостингам.
Igor
Ну для хранения паролей мне обычного хватает
Roman
Парни, мне нужно знать индексы/id ячеек в таблице при клике. Пока пришло в голову на каждую ячейку вешать онклик, который вызывает функцию и передаёт евент. Есть ли более красивый способ?
Roman
Нормальный способ. Еще можно добавлять data attribute и смотреть его в event
Про дата атрибут щас гляну. Спасибо за инфу. С таблицей просто смотрица не оч - однотипные ячейки одинаковые онклики повторяющиеся.
Kurzdor
ребят, есть редакс на проекте, вопрос в том как получить данные логиненного пользователя раньше рендера? а то просто залогинен юзер, а будет бросать на логин страничку или вообще будет flash компонентов, коих я не хочу