Костя
Оно-то работает как надо, прост решил уточнить, чтоб потом с вертухи в нос от тимлида не получить
Костя
Почему не асайн ?
я хз че такое асайн в контексте вопроса
Valentyn
это небо
Erlich
может кто может помочь со стилизацией React компоненты которая отрисовывается два раза, но в одном случае картинка должна быть слева, а вдругом справа, использую module.css ...
Andrey
Друзья, посоветуйте, нужно грамотно реализовать loading стейт в приложении, на данный момент isLoading true в начала функции фетча, и false когда дата отфетчилась. И все хорошо, пока не возникает необходимость фетчить дату при мауенте компонента. В итоге изменение стейта вызывают бесконечный цикл рендера компонента. Какие есть пути решения этой проблемы?
Andrey
Вызывать фетч только после маунта?
Да, фетчит в componentdidmount, а по скольку во флоу фетча меняется стейт isLoading, все в петлю замыкается
Erlich
Кинь проп, что б переключить клас.
чет не могу со старта догнаться, можно подробней или скрин?)
Dmitriy
чет не могу со старта догнаться, можно подробней или скрин?)
Вам понятно как это решить с точки зрения стилей? Вы знаете как можно управлять наличием классов нтмл теги в зависимости от пропа компонента?
Andrey
Мне не понятно каким образом это происходит
Отправил реквест на данные для отображения в компоненте, стейт ушел в isLoading - true, дата скачалась, стейт поменялся на false- стейт поменялся, вернулся компонент, а у него в дид маунт реквест на данные...
Andrey
Дидмаунт не может вызывать более одного раза если только не произошло до этого размонтирования
Размонтирование есть, компонент во врапере, и если isLoading - true , врзвращает компонент со спинером. Как по догому сделать? Ставить условие в рендере компоненте который фетчик данные в дид маунте?
Erlich
https://www.npmjs.com/package/classnames
я с этих двух ссылок пришел сюда))) искал более понятные примеры classnames но но че не нашел...видимо ток сейчас догнался, буду пробывать...спасибо+
Andrey
Вынесите фетч в этот врапер
Враппер один на все компоненты где нужны данные для отображения, а данные в разных компонентах разные, и маняются динамически
Andrey
Тоесть заранее их все покачать, я не могу
Ivan
А почему бы тебе не реализовать запросы на миддлвейрах и при монтировании роута диспатчить?
🐝 dmitriy
либа для классов с условиями - ну это вообще ни в какие ворота не лезет
Dmitriy
да
Результат фетча в любом случае удобней всего сверху на такой компонент кидать. А сейчас вы себе палки в колеса..
Ivan
З.ы.: состояние стейта можно и на верхнем уровне дергать
Andrey
yield put(setIsLoadingTrue()); const res = yield call(fetchUpdateUserChannel, action.payload); if (res.status === undefined) { yield put(channelDetailsSuccess(res)); yield put(setIsLoadingFalse()); }
Ivan
Альтернативы?
Сделать хелпер?)
Andrey
вот типичный флоу реквеста, из дидмаунта
Dmitriy
Сделать хелпер?)
Зачем его делать если можно скачать из нпм?
🐝 dmitriy
Альтернативы?
я вот так пишу https://github.com/toastyboost/react-collapser/blob/8e965f99c3dcb7ce9e08c0dff18f74fa86cfed6a/src/components/panel/index.jsx но это вкусовшина, делайте как нравится, но тянуть либу для мерджа классов это слишком
🐝 dmitriy
классы в прошлом, юзайте дата-атрибуты
Ivan
Зачем его делать если можно скачать из нпм?
Затем что хватит уже в проекты тянуть тону ненужных либ
Dmitriy
классы в прошлом, юзайте дата-атрибуты
Как это взаимозаменяемы может?
Ivan
Ты сурсы либы этой видел?
Нет, но зачем? Это слишком простая задача чтобы юзать либу
🐝 dmitriy
Как это взаимозаменяемы может?
ну вот так) смена классов сопровождается ререндером компонента - дата атрибуты работают просто с css
Dmitriy
Нет, но зачем? Это слишком простая задача чтобы юзать либу
А потом я после таких как ты разбираюсь с кучей тернарок. Или хелпером в 100 строк
Ivan
Ivan
Там строк кода на максимум 5 строк
Dmitriy
Рил? А разбираться в сомнительном пакете тебе в кайф?
Пакет в 50 строк https://github.com/JedWatson/classnames/blob/master/index.js С 20к скачек . Сомнительный.... Хм
Ivan
Пакет в 50 строк https://github.com/JedWatson/classnames/blob/master/index.js С 20к скачек . Сомнительный.... Хм
Да, юзать пакет в 50 строк - тупо, ну прям очень, очень и при очень
Dmitriy
Там строк кода на максимум 5 строк
Я весь в внимании. Жду такой же удобный хелпер но в 5 строк
Andrey
Можно одну тернарку подпихнуть в рендер конечного компонента, и обойтись без врапера, но проект растет, и компонентов становится много
Andrey
Да, юзать пакет в 50 строк - тупо, ну прям очень, очень и при очень
можно простой пример реализации задачи на мидлварах?
Dmitriy
Че? А это причем тут?
Покажи 5 строк кода говорю
Ivan
я об этом
Ааа, просто клиент для апи написать и диспатчить что-то вроде - onLoad, onSuccess, onError, меняя стейт
Ivan
Покажи 5 строк кода говорю
Да мне пофиг что ты говоришь, задача тривиальная, делать мне нечего тебе что-то доказывать
Andrey
стейт меняется, спиннер крутится =) безконечно =)
Ivan
стейт меняется, спиннер крутится =) безконечно =)
Ну так менять же стейт (аля isLoadig), когда у тебя запрос успешный или с ошибкой
Andrey
Ну так менять же стейт (аля isLoadig), когда у тебя запрос успешный или с ошибкой
ну так я так и делаю, меняю когда успешный, только когда isLoading в процессе, враппер выпрыгивает в другой компонент, и исходный комп размонтируется
Dmitriy
Да мне пофиг что ты говоришь, задача тривиальная, делать мне нечего тебе что-то доказывать
Если ты не заметил то в чате тысячи человек а не только я.. Ты сказал что либа бесполезная и ты знаешь как сделать проще. Покажи. Может мы все тебе спасибо скажем
Artem
Народ кто то работал с mailchimp или mandrill?
Ivan
Если ты не заметил то в чате тысячи человек а не только я.. Ты сказал что либа бесполезная и ты знаешь как сделать проще. Покажи. Может мы все тебе спасибо скажем
Просто ичем по объекту проходится и формировать строку из ключей, у которых значение true - тебе и вправду код нужен?
Юлія
Всем привет. Нужен хелп. В чем может быть проблема? У меня от запроса приходят данные, в компонент они уже попадают в виде (props), пропсы по идеи не перезаписываются они же только read-only. Затем я делаю копию одной из переменной из пропсов и потом хочу записать в state. И вот когда я чтото делаю даже с копией у меня почему то перезаписываются все переменные которые от нее наследуются. Я грешила на копию прееменной, но уже несколькими вариантами попробовала и не работает. Прошлась по жизненным циклам - та же фигня...Не понимаю как такое возможно вообще. Подскажите что это и как с этим бороться?
Ivan
Просто ичем по объекту проходится и формировать строку из ключей, у которых значение true - тебе и вправду код нужен?
Обожаю проекты, в которых разработчики боятся устанавливать маленькие удобные библиотеки. Заходишь в директорию helpers и нарадоваться не можешь — десятки разных реализаций одной функции, кучи неструктурированного гуано, обычно без тестов и без продуманного апи. Ммм, найс. Суть таких библиотек — надёжность, продуманное апи и единственная ответственность. И никакой джун не сможет зайти внутрь и «ну чего, я просто добавил пятый аргумент в функцию, мне нужен ещё один флаг».
Ivan
Бояться и юзать на любой чих и рыг либы - разные вещи
Artem
Народ кто то работал с mailchimp или mandrill?
у них есть на сайте Example Request JSON, в "key": "example key" я ввожу свой ключ и получаю "message": "Invalid API key" хотя ключ только что зарегал
Ivan
Особенно проблема заметна когда зависимости не резолвится, когда разраб сказал - ну вас нахуй, не хочу дальше развивать свой продукт, я сам осознал что он не нужен
Ivan
Вот такие как вы, тянете jQuery, lodash и vue в реактовые проекты
Ivan
Так случается когда команда гуано
Никогда не следует недооценивать предсказуемость тупизны. Команды бывают разные, а ещё в них контингент меняется. Проще использовать популярное решение, ведь скорее всего вам лень писать тесты, документацию и демку для каждого хэлпера.