Dmitriy
Ну и странно что функция зовётся validateString но принимает массив... или (...str) превращает строку в массив символов?
Что за странный вопрос. Четко же видно что функция принимает n количество строк в качестве аргументов.
Anonymous
возможно есть готовый плагин, и я подошел к гуглению не с той стороны
Anonymous
а проблема в том, что один необдуманный импорт может положить в чанк с feature1 чуть ли не всю feature2
Victor
есть каталог app/ в нем есть /feature1/ и /feature2/ хочу на уровне линтера запретить импорты из feature1 в feature2
Пометьте метод deprecated - ide может подсветить. Поставьте гневный консоль.лог в плохом методе. Цель запрета какая?
Anonymous
Пометьте метод deprecated - ide может подсветить. Поставьте гневный консоль.лог в плохом методе. Цель запрета какая?
выше постом описал в чем дело. Мне нужно именно кроссимпорты между фичами запретить
Anonymous
Что значит «положить»?
то и значит, импортируя к примеру actionType из feature2 мы получаем весь код из файла который импортируем + все зависимости
Anonymous
и боротся на огромном проекте с этим пока не ясно как, кроме как иногда открывать bundle analyzer
Dmitriy
и боротся на огромном проекте с этим пока не ясно как, кроме как иногда открывать bundle analyzer
Не уверен но может так? https://eslint.org/docs/rules/no-restricted-imports Класть в рут каждой из фич свой конфиг?
Victor
Надо получше погуглить, возможно есть прям готовое. Как вариант мониторинга проблемы - встроить в CI проверку увеличения размера бандла
Dmitriy
https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-internal-modules.md
Видишь трабл в том что внутри и только внутри можно было импортить модули. Определение дубликатов в бандле это уже следующий шаг. Зачем тушить если можно линтером по рукам бить.
Anonymous
https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-internal-modules.md
возможно подойдет. спс. Нужно посмотреть насколько гибко он настраивается. Увеличение размера бандла не очень хороший показатель. И в рантайме CI не оч круто это делать, я не хочу чтоб такой код до гита долетал
Victor
Если увеличение размера бандла - единственный минус, то не слишком ли over engineered?
Anonymous
Если увеличение размера бандла - единственный минус, то не слишком ли over engineered?
не единственный, можно словить какой-нибудь сайд-эффект если в файле к примеру подключены глобальные стили или что-то типо того, а ты из него импортишь что-нибудь не связанное со стилями
Anonymous
понятно дело что тут проблема структуризации кода, но еслиб линтер просто запретил импортить из других фич мне бы было спокойнее
Dmitriy
А можно в рутовом конфиге еслинта укзать разные опции для разных директорий?
Anonymous
А можно в рутовом конфиге еслинта укзать разные опции для разных директорий?
если и можно то добавляется оверхед в виде - создал папку с фичей -> подковырял конфиг, кароче оверхед. Кароч нужно пробовать ковырять import/no-internal-modules и если он не подойдет то накидать свой плагин для tslint
Руслан
Всем привет! Подскажите почему в этом случае мне выдается предупреждение? this.SmartFunds = this.SmartFundsOriginal.filter(fund => { if(fund.shares !== null) return fund.shares.includes(address) }) Line 82: Expected to return a value at the end of arrow function
Sm•ok
К чему это условие ?
Sm•ok
ведь все равно вернется последнеее
Dmitriy
if(fund.shares !== null)
строгая порверка на неравенство
Sm•ok
строгая порверка на неравенство
так он все равно ничего не делает
Victor
Проблема в том что filter ждёт ретурна А если ничего, то это undefined
Victor
(fund => fund.shares && fund.shares.includes..)
Руслан
К чему это условие ?
Без этого условия
Sm•ok
Без этого условия
Блин, я запутался из-за отстутствия скобок )
Sm•ok
{}
Dmytro
ПРивет ребята а что за трабл с роутером?
Dmitriy
ПРивет ребята а что за трабл с роутером?
Взял не броузерроутер и забыл прокинуть инстанс хистори?
Victor
Строки принимает, строк может быть много, проходу все циклом
Выше уже написал - функция должна отражать как можно полнее то что делает. В вашем варианте - validateStrings
Bekzhan
всем привет, как писать запросы на рест апи, посредством axios, есть ли примеры?
Sm•ok
Да, в документации
Red[$]hort
Red[$]hort
Коллеги, разве в этом примере setOff и setOff не создаются в памяти заново при каждом вызове LightBulb?
Red[$]hort
Если нет, то что происходит на самом деле?
Юрий
создаются конечно
Nikolai
Для dragging блоков какую либу посоветуете?
Юрий
мемоизация вам в руки
Юрий
а вообще определять в render функции это не очень
Red[$]hort
создаются конечно
Тогда стейт каждый раз должен скидываться, но он сохраняется. Почему?
Юрий
Это новый механизм хуков, читайте как он работает
Red[$]hort
Как это внутри то работает? 🙂
Sergey
Как это внутри то работает? 🙂
UseState берёт на себя всю работу по сохранению стейта
Dmitriy
а вообще определять в render функции это не очень
А как правильнее сделать в том конкретном примере?
Юрий
А как правильнее сделать в том конкретном примере?
Вообще компонент который сам себя переключает... а зачем такой? Логично же что его состояние должно созранятся на более высоком уровне. Делать "умные" ... ну такое себе решение. Передавайте статус / цвет как параметр.
Red[$]hort
Разве они не создаются в памяти заново и это не ущерб для производительности?
Dmitriy
Разве они не создаются в памяти заново и это не ущерб для производительности?
Ущерб но смотря что пишешь. Иногда им можно пренебречь.
Dmitriy
Стейт менеджер, стейт родителя, контекст. От задачи зависит
Чето не понял. Храню состояние в родителе, но колбеки вниз передаю? Вопрос был про создание функций при рендере.
Nikolai
Чето не понял. Храню состояние в родителе, но колбеки вниз передаю? Вопрос был про создание функций при рендере.
Если глубоко надо передать по дереву то через контекст. А если вообще это состояние нужно в разных частях приложения или после анмаунта то в редаксе храните
Юрий
Чето не понял. Храню состояние в родителе, но колбеки вниз передаю? Вопрос был про создание функций при рендере.
Тут я может перегнул что это вооще плохо :) Я еще в парадигме TS / React 15 работаю. Хуки так, для лично развития смотрю.
Dmitriy
Если глубоко надо передать по дереву то через контекст. А если вообще это состояние нужно в разных частях приложения или после анмаунта то в редаксе храните
Но все же. Как избежать пересоздания функций обновления стейта при ререндере сущности содержащую стейт?
Dmitriy
useCallback
useReducer это и нужно было парню сказать
Александр
Разве они не создаются в памяти заново и это не ущерб для производительности?
Создание новых функций при каждом ререндере само по себе никак практически на производительности не сказывается, а вот то что при передачи таких функций как props дочерним компонентам они будут получать каждый раз новое значение - это плохо. Для решения проблемы есть useCallback. Updated: опередили уже с ответом
Dimitri
посоветуйте слайдер, только не slick, c ним есть проблемы
Yaroslav
Anonymous
Почему match.params возвращает empty ?
Anonymous
Sergey
Пустой объект