Rainbow
Стоит поставить...
Artur
FETCH_NEW_IMAGE виден в redux devtools?
Индекс не передается, а по Network запрос идет
Rainbow
function* fetchImageAsync(action) { // ... action.index
Artur
function* fetchImageAsync(action) { // ... action.index
Так тогда function* fetchImageAsync(action) { try { yield put(requestNewImage()); const data = yield call(() => { return fetch('https://api.giphy.com/v1/gifs/random?api_key=gR30u9O8KPOanwIQupHbD90d4k57EOeY') .then(res => res.json()) } ); console.log(Object.values(data.data.images)[action.index].url); yield put(requestNewImageSucceeded(Object.values(data.data.images)[action.index].url)); } catch (error) { yield put(requestNewImageFailed()); } }
Rainbow
function* fetchImageAsync(action) { debugger и смотри в devtools хрома что там происходит с переменными
Rainbow
Он остановит код и в console (открыть Esc) можно писать свой типа action Только sourcemap нужно отключить, иначе не видно реальные имена переменных.
Rainbow
Сорян, что отсылаю в devtools 😄 но так проще всего найти проблему. Пиши debugger в ключевых местах и смотри что там происходит.
Oleg
где должны быть тесты? в папке src папка __test__, которая будет повторять структуру? или рядом с тестируемым файлом?
Ilya
dispatch("SOME_ACTION") и сиди отыскивай по всему проекту поиском, где может разлочиться сага и пойти выполняться какая-то логика
с другой стороны, как реализовать тот же react-admin без подобных трюков? Предсказуемоесть конечно падает, но для систем которые требует расшириний (как тот же react-admin) разве есть другое решение?
Rainbow
где должны быть тесты? в папке src папка __test__, которая будет повторять структуру? или рядом с тестируемым файлом?
У всех свои подходы. Я за то, чтобы можно было удалить все через rm -r CompnentName* т.е. рядом с файлом
Oleg
спасибо.
Daniil
Вот смотрю на саги. И блевать хочется. Не смотрел redux observable, но там тоже Эпики. Уж лучше на нормальный rx посмотреть
Тут ещё прикол в том, что берут саги, а используют put/call, которые по факту несут функционал санков
Dmitry
Тут ещё прикол в том, что берут саги, а используют put/call, которые по факту несут функционал санков
Я думал саги решают определённую проблему, а вышло что ничего. Только takeLatest (не помню точно) самое полезное там
Oleg
как понимать эту ошибку? у меня не установлен этот пакет? на доке только yarn add --dev react-test-renderer
Sergey
как понимать эту ошибку? у меня не установлен этот пакет? на доке только yarn add --dev react-test-renderer
"на доке"? О какой доке речь? Скорее всего да, не установлен, если бы его не было в конфиге бабеля, ошибка была бы другой
Oleg
В package.json есть секция jest?
нет. вот единственное упоминание пятилетней давности.
Oleg
дока jest, но уже пофиг, тут проблемы по серьёзнее. png файлы выдают ошибку
примерно по этой причине я забил когда-то на тесты. почему-то стоит импортировать один компонент, он импортирует всё, что импортирует сам компонент. в целом логчино, непонятно только, почему он png компоненты не распознаёт. если кто-то знает причину, help pls
Sergey
в общем-то в тестах нет лоадеров (вебпака)
Sergey
нет. вот единственное упоминание пятилетней давности.
Я не помню названия пакетов, но не хватает babel-jest и прочих трансформов, чтобы jest мог обработать те импорты, которые к js никак не относятся. В доке бабеля почитай про конфигурацию, да и просто погугли, только гугли для своей версит jest
Oleg
потому что для тестов не настроены лоадеры
хм... окей. спасибо, попробую покопать в эту сторону.
Sergey
В каком разделе? А какие они там есть?
Sergey
Мы ведь не хотим за тебя читать доку :)
Sergey
Помимо ссылки выше https://jestjs.io/docs/en/tutorial-react
Oleg
https://jestjs.io/docs/en/webpack#handling-static-assets
о... вроде оно, спасибо.
Roman
упс, не тому ответил. сори :)
Oleg
ну, на картинки вроде не ругается. а куда копать/как гуглить проблему, когда ругается на импорт чего-то? конкретнее: есть папка с константами, есть редьюсер, который использует их, но jest не видит импортов вида import { a, b } from '../constants'; видит только если ткнуть import { a, b } from '../constants/actions/my.actions';
Andrei
видели телеграм контест?
Bohdan
У меня путь типа /a/:id. Я делаю history.push('/some') и оно пушит на /a/some вместо /a/:id/some. Как запушить последнее?
Sergey
видимо /a это у тебя префикс
Andrei
видели телеграм контест?
там нереально сделать столько за две недели
Andrei
Sergey
с диким планированием
Sergey
я примерно посчтитал и получается, что если круто запараллелить, то в 5 человек можно сделать
Bohdan
видимо /a это у тебя префикс
так а что считается базовым путем, к которому пушится новое?
Sergey
так а что считается базовым путем, к которому пушится новое?
это от множества настроек зависит например <base />
Andrei
о не факт
хотя стоп, там же всего лишь небольшая часть функционала на первой стадии) The goal is create a simplified web version of Telegram without using third-party UI frameworks. The app should include login/signup flows and allow viewing chat and message lists. The design implementation should be identical to the mockups attached below.
Andrei
смотрю вот
Sergey
Даже просто визуально реализовать всё это не очень-то легко
Sergey
Sergey
Sergey
Sergey
Sergey
Sergey
у меня появилась мысль, сделать скринкаст реализации интерфейса этого телеграма на реакте без api (просто потому что там дикая дичь)
Andrei
это я еще апи не смотрел))))))))
Sergey
это я еще апи не смотрел))))))))
там несколько слоев протоколов несколько видов шифрования готовая реализация — говно там свой протокол и с ним свой язык описания протокола
Sergey
для меня это самая сложная часть
Andrei
было бы интереснее на чистом жсе глянуть)
Sergey
было бы интереснее на чистом жсе глянуть)
там бесконечное количество реализаций. мой поинт в использовании react best practices
Yury
очень интересно было бы посмотреть
voix
который мертв
Откуда инфа?
Sergey
в итоге это бы никто не смотрел потому что ризон никому не нужен
voix
За ним стоит фб и сам язык неплохой. Конечно, много чего можно сделать грязно, но куда как меньше, чем в жс.
voix
17 год, ипать )
Sergey
на самом деле последний релиз был 6 дней назад. но ризон почти никто не юзает вакансий вообще нет
Sergey
ну и написано на окамле поддерживать почти невозможно
Sergey
voix
Молодой же пока язык. Конференции проводятся, где рассказывают как его в проде готовят.
Sergey
а полноценное приложение