Илья
Если да, то проверка на error вообще не нужна тут. Если будет reject, то выполнится catch.
Китикет
Откуда вообще error?
Anton
referralSignup это промис?
Нет, это другая async функция
Китикет
А, вспомнил тот вопрос
Китикет
await не поможет, error будет старое
Илья
И вообще, запрос может возвращать true или false, но он у тебя асинхронный. И у тебя он должен быть сделать или через fetch, или axios и т.д. Где у тебя возвращается промис. И если сервер ответил ошибкой, то будет reject и у тебя перейдёт в catch эстафета. И вообще, если у тебя отдаётся только true/false, то тогда и проверки никакие не нужны, если правда по какой-то причине не может быть кейса, что в ответ на успешную операцию придёт false.
Anton
Откуда вообще error?
Из стейта, начальное значение форс. Если в запросе от сервера приходит ошибка, то стейт переключается на error: true
Илья
await не поможет, error будет старое
Т.е. у него вызывается функция, которая что-то пишет в стейт и он обращается по ссылке к старому значению?
Илья
Запутался уже...
Китикет
Ему надо из referralSignup возвращать успех или нет, а error там не трогать
Китикет
И не понятно что такое referralSignup - это экшн из редакса?
Aleksey
всем добрый вечер! что делать с такой ошибкой ? Uncaught ReferenceError: ImTranslatorDataEvent is not defined at <anonymous>:1:1
Китикет
Или запрос именно
Илья
И не понятно что такое referralSignup - это экшн из редакса?
У меня изначально было понимание, что это запрос к беку.
Китикет
Если запрос, то он как-то странно возвращает ответ 🤔
Китикет
Почему тогда просто на месте не разобраться, error там или нет, и не трогать error который из state
Китикет
всем добрый вечер! что делать с такой ошибкой ? Uncaught ReferenceError: ImTranslatorDataEvent is not defined at <anonymous>:1:1
Что не понятного? Русским (английским) языком написано в чем ошибка
Anton
И не понятно что такое referralSignup - это экшн из редакса?
сорри отходил, да это action из редакса.
Китикет
сорри отходил, да это action из редакса.
Ну возвращай из экшна ошибка или нет
Aleksey
Что не понятного? Русским (английским) языком написано в чем ошибка
вообще не понятно) поясни плиз) у меня в коде нигде нету ImTranslatorDataEvent. я вообще хз что это
Китикет
вообще не понятно) поясни плиз) у меня в коде нигде нету ImTranslatorDataEvent. я вообще хз что это
Ну хз, такое в гугл наверное, я не знаю что там и где у тебя используется
Aleksey
Что не понятного? Русским (английским) языком написано в чем ошибка
и не говорит даже в каком файле ошибка или в какой строчке
Anton
Ну возвращай из экшна ошибка или нет
так и делаю, возвращаю из try - тру, из кэтча фолс
Китикет
так и делаю, возвращаю из try - тру, из кэтча фолс
При оборачивании в dispatch возвращенное значение сохранится
Anton
throw new Error?
ошибка так
Китикет
ошибка так
Какая именно ошибка?)
Китикет
Какая именно ошибка?)
Или ты про то что ошибка так обрабатывается
Anton
проблема в том, то есть сейчас у меня при правильной отправке формы выдает res true и error false, но в условие if (res && !error) {...} реакт не заходит. В этом условии как раз и выполняется смена стейта.
Китикет
Надо просто вот так делать const onSubmit = async e => { e.preventDefault(); const error = await referralSignup({ email }); if (!error) { setFormData({ ...formData, showForm: false, showSuccess: true }); } };
Anton
Или ты про то что ошибка так обрабатывается
да, про то что ошибка так обрабатывается
Илья
ошибка так
Почему не выбросить ошибку наверх, чтобы наверху сразу в блок catch попасть?
Илья
А не вот эти вот true/false
Китикет
Почему не выбросить ошибку наверх, чтобы наверху сразу в блок catch попасть?
Имхо экшн должен быть самодостаточным, а не выкидывать ошибку наружу
Anton
Почему не выбросить ошибку наверх, чтобы наверху сразу в блок catch попасть?
ну вначале просто переключаю редюсер и после возвращаю ошибку
Anton
Надо просто вот так делать const onSubmit = async e => { e.preventDefault(); const error = await referralSignup({ email }); if (!error) { setFormData({ ...formData, showForm: false, showSuccess: true }); } };
да, это сработало. Спасибо! А почему не работала проверка (res && !error)? error в этом случае из стейта бралось и оно точно было false.
Anton
ха, весь код в консоли там, так и не вкурил ) ладно, спасибо еще раз )
Илья
Имхо экшн должен быть самодостаточным, а не выкидывать ошибку наружу
Не вижу проблем записать данные об ошибке в стор если это необходимо и выбросить ошибку наверх, для того, чтобы блок try/catch выполнялся как надо. Если это нафиг не надо, то тогда зачем тут блок try/catch?
Китикет
Имхо экшн должен быть самодостаточным, а не выкидывать ошибку наружу
В текущей реализации экшна, view имеет право воспользоваться / не воспользоваться результатом, а если выкидывать ошибку - он обязан будет делать try/catch даже если знать о результате ему не нужно
Anonymous
пишет, что this.context deprecated. Как использовать сейчас?
Илья
Ну он как раз не за чем)
Ну тогда нафиг его :) Если он отдаёт ошибку в стор и затем из стора берет её в компоненте и уже принимает решение, делать что-то или нет если она существует/не существует, то ок, имеет место быть, но я бы пожалуй сделал иначе, как выше описал.
Aleksey
Почему reduxdevtools работал с таким кодом горел зеленым значок, а теперь значок белый, и не работает
Владислав
Я не уверен, но думаю composeEnhancers не нужно вызывать
Георгий
Привет, подскажите как правильно в next.js придать всем страницам один вид. Я до того пару простеньких приложений на react.js делал. Так там центральный компонент, точка входа была, а в ней большая ветвистая route-петрушка была. В зависимости от url рендирился тот или иной компонент, но в пределах одной рамки. А в next.js я как понимаю, куча страничек и все они "точка входа". Как быть, просто определить какой то компонент, типа Frame. Который нарисует шапку, подвал и прочее, и на каждой странице в папке pages начинать все return <Frame>содержимое</Frame> ??
Volodymyr
Доброй ночи всем, товарищи кто работал с Jest ?
Lena
В чем может быть загвоздка? есть массив данных, которых принимаю в компоненте и записываю в стейт, всего карточек 100. Они отрисовываются на странице, в кол-ве 6 шт. Само кол-во видимых карточек отражено тож в стейт. И также есть кнопка - при клике на которую увеличивается число отображаемых карточек в стейте,и кароч ок.работает. А есть список селект - он должен фильтровать карточки (по категориям, напр. показать только зеленые/красные/чернобурые и тд.) При выборе в селекте - происходит изменение в стейте (в фильтре state.filter указывается выбранный фильтр) и тут тож ок, а вот отрисовка карточек стоит на месте. и никак не отзывается. Хотя сам массив я вывожу в консоли (тоесть карточки сортируются как надо) но на странице ничего не происходит
Lena
что я упускаю?
Lena
ну я новичок думала мож че очевидное
Lena
ща
Dmitriy
ну я новичок думала мож че очевидное
ничего многословние кода не может быть
Китикет
Офигеть сколько конструктор жрет
Андрей
Офигеть сколько конструктор жрет
Удивительно, аллокации занимают кучу времени.
D_d
Чуваки а как можно отследживать если например у елемента div изменился style проперти?
Андрей
Шо такое аллокации
Выделение памяти.
Vladislav
Слушайте, а может кто-нибудь знает как вообще сохранять сессию на клиенте?
Vladislav
На backend это готово, только вот не понимаю как это реалиховать на клиенте
Vladislav
Я пока на токенах реализовал
Vladislav
Ну типо токен backend там отдает клиенту
Vladislav
Типо сделать сохранение через куки?
i
всем привет
i
есть проблемка "пришло сообщение к генератор экшена, затем в редюсер нужно из стейта брать текущий чат и делать диспатч, но это не сделать в генераторе экшена т.к подключение к каналу вебсокета происходит 1 раз при загрузке приложения то есть getState не обновится, а в редюсере не запустить диспач"
i
нужно как быы запускать запрос на прочтение сообщения, если текущий выбранный чат совпадает с чатом полученного сообщения
Lena
покажи код
https://codesandbox.io/s/github/malinovaelena/avito-beta