Тимофей 🛴
)
Может оказаться и не в этом проблема, проверяй в каком компоненте падает, и почему у него может быть какой то компонент 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
Vladimir
🦜
потому что await у тебя и диспатч не должен срабатывать и падать либо в catch, либо в finally
Oleg
кто-то в курсе, фонт асом действительно такой медленный или это в коде что-то не то?
Nikolai
🦜
Амаль
Nikolai
Oleg
Нормальные svg иконки
а как их лучше подключить? в плане, если просто вставить тег, то это большие импорты + неудобные свг. по идее.
nnbphkqujhjkynr
Если у меня есть ссылка, что с одного роута /route, переходит на роут / и должен проскролить к селектору, я написал метод, что это делает
scrollToSelector = () => {
document.querySelector(".thisselector").scrollIntoView({
behavior: "smooth"
})
};
в линке я вызываю его
```{href: "/", label: "link", click: this.scrollToSelector }
Но после нажатия переходит на / но не скролит к селектору
ное сли нажать еще раз то скролит
Как реализовать в один клик?
🦜
🦜
если нужно дохуя иконок то вот https://materialdesignicons.com/
Igor
🦜
PP
Добрый день, около года пропуcтил новшеств в реакте, добавилось множество изменений для работы со стэйтом/ пробрасыванию глобальнога стэйта и т.д. вопрос, есть ли еше смысл в редаксе?
🦜
Oleg
если cra то в доке описано как
import logo from './logo.svg';
<img src={logo} className="App-logo" alt="logo" />
так?
Oleg
в целом, наверное, так лучше.
🦜
Oleg
🦜
Oleg
Dima
когда записываю и забираю текст с localStorage добавляет кавычки.
Как от этого избавиться?
Looch
Оно серилизует
Eldar
Ребят проблема с typescript. Как можно побороть эту проблему? даже error && error.stack не воспринимает вебшторм - это потому что в конфиге typescript стоит "strictNullChecks": true
▲rtemiy
Yar
Max
кто использует linaria + gatsby.js. Как пофиксить error "Make sure you are not using a browser or Node specific API." ?
Eldar
Я пробовал и на строгие проверки, это не помогает
Eldar
тернарка или дефолтное значение
default у меня null поэтому и ругается. и никакие проверки не помогает у меня даже самая очевидная првоерка стоит error && error.***
Yar
Eldar
проблема скорее всего с вебштормом так как сборки и компилятор тайпскриптовый не ругается
Yar
нет. у вас ошибка, вы разрешаете тип Null. если тип null то у него нет stack
Eldar
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
локалсторадж же вроде глобальный относительно сайта, нет?
Dima
Sm•ok
Dima
🦜
спасибо
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
Sm•ok
Sm•ok
или тут нужна не синхронизация стореджей, а синхронизация данных в ридаксе, который изначально тянул данные из стореджа
Roman
Ребят, всем привет, вопрос)
Можно ли как-то следить за состоянием стора так, чтобы при изменении его вызывать определенный метод в компоненте?
Андрей
Roman
оу, звучит, как костыль 😅
Alex
Roman
с useEffect игрался, не получилось..
Alex
🦜
Roman
юзаю header с материал юа, там с хука useState метод, который сетить значения для нужной отрисовки подчеркивания в линках. Так вот, если я с другого компонента хочу перейти на определенный роут, я пушу в хистори значение, меняю стор. И в этот момент изменения стора, нужно вызвать тот самый метод с хука и засетить значение.
🦜
Roman
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'ов реренедера.
Orkhan
🌿Alex
Пацаны и пацанессы,
кто что думает про https://preactjs.com/ ? кто-нить пробовал на проде?
Dru
Добрый день простите что влезаю с вопросом