A.Shersh
возможно не упоминал я, но я сейчас учусь в редакс конкретно)
Александр
Не вижу проблем, с тем же дропдауном
Я бы тестировал что он будет открыть или закрыт при нажатии или выборе пункта меню, вполне просто вроде
Александр
Андрей
В чем проблема
Это не ответ на вопрос.
A.Shersh
С редаксом выхода нет.
Громкое заявление) ну мы повернем ключ)
Александр
Это не ответ на вопрос.
https://airbnb.io/enzyme/docs/api/ReactWrapper/simulate.html
Андрей
Громкое заявление) ну мы повернем ключ)
Если найдёте, то добро пожаловать. 2 года чату, но пока никто не придумал способ.
Александр
Полагал вы в курсе
A.Shersh
Если найдёте, то добро пожаловать. 2 года чату, но пока никто не придумал способ.
Окей, этот месяц изучаю, в следующем напишу НадRedux, который будет иметь сторы в сторах) чВ
Алексей
Ребят, тут можно обсуждать только все, что связано с реакт или работу javascript тоже?
Андрей
Полагал вы в курсе
Я в курсе, но я не считаю этот способ правильным. А вы знаете, что это может тестировать компонент неправильно?
Андрей
Надеюсь вы мне расскажите почему
К примеру, у вас внутри компонента есть div, который полностью накрывает ссылку. В итоге пользователь не может сщёлкнуть, а в тестах всё ок.
Андрей
Однако это все мне видится слабым доводом отказаться от локального стейта
Невозможность писать корректные тесты - это слабый довод?)
Андрей
Ну, ок.
Андрей
У всех свои приоритеты
Без проблем. Вы попросили обоснование. Вы его получили.
Андрей
а при чем тут локальный стейт?
К тому, что он не оставляет возможности протестировать компонент, кроме как написав интеграционный тест.
Александр
К тому, что он не оставляет возможности протестировать компонент, кроме как написав интеграционный тест.
Как бы вы реализовали дропдаун вышеупомянутый, в смысле куда бы вынесли стейт и какой бы подход для тестирования использовали ?
Андрей
логику изменения стейта можно протестироваит легко
Давайте примеры. Я не против, если это так легко.
Bohdan
Давайте примеры. Я не против, если это так легко.
ну собственно как и написали тут
Андрей
ну собственно как и написали тут
Только при этом вам нужно знать и соблюдать, что каждому состоянию соответствует свой view и они никак пересекаться не могут.
Андрей
Очень хлипкая гарантия.
Андрей
Как бы вы реализовали дропдаун вышеупомянутый, в смысле куда бы вынесли стейт и какой бы подход для тестирования использовали ?
В случае эффектора: имеем const $opened = createStore(false). Имеем const toggle = createEvent(). Имеем view компонент, который принимает пропсы opened и onClick Имеем ещё один view компонент, который соединяет наш стор и вышеназванную вьюху. В итоге имеем стор + эвент, которые тестируются отдельно и вьюху, которая тоже тестируется отдельно.
Андрей
У меня вторая вьюха и сторы с эвентами имеют "небольшую обёртку", чтобы столько бойлерплейта писать не пришлось.
Александр
Ясно, спасибо
Eugene
Подскажите, как хранить Date в стейте
Eugene
Чтобы можно было изменять этот объект
Eugene
Простой пример с кнопками лево и право, как в календаре
arts
Чтобы можно было изменять этот объект
В стейте не надо ничего изменять, он должен быть иммутабельным.
Eugene
В стейте не надо ничего изменять, он должен быть иммутабельным.
Как мне тогда подписаться на его изменения
Eugene
А если без него
Mihail
Чтобы можно было изменять этот объект
ты хочешь увеличивать/уменьшать дату?
Eugene
Да
Eugene
Но чтобы эти изменения пропсами попадали в другой компонент
Mihail
самое первое, что приходит в голову - хранить в таймстемпе
Eugene
И туда нужно прокидывать именно Date тип
Mihail
и заранее указать мол, для увеличения даты на 1 день увеличить на такое-то количество миллисекунд
Eugene
Ок, попробую
Андрей
Если хочешь писать говно, то пиши его только в прослоцке.
Eugene
Спасибо
Eugene
Что ты имеешь в виду
Eugene
Я хочу нормально написать)
Deyl
Простой пример с кнопками лево и право, как в календаре
Больше информации о том каким должен быть state и какую форму и после чего он будет приобретать её.
Eugene
https://codesandbox.io/s/rough-brook-hqcwb
нужно при кликах по кнопкам лево-право отправлять Date в календарь
Deyl
Извините, я с мобильного, код не могу видеть
Deyl
То есть дата меняется? С 2-3-4 августа
Deyl
Кстати, не так давно этот компонент переделывал для нужд конторы
Eugene
То есть дата меняется? С 2-3-4 августа
да, мне надо менять дату и измененную дату передавать в календарь
Eugene
в обратном порядке все работает отлично
Eugene
когда я выбираю день, мне возвращается полный Date объект
Eugene
Date-fns и toDate метод.
date-fns заменяет moment и dayjs?
Deyl
А зачем вам moment?
Deyl
Чтобы русский язык был?
Eugene
А зачем вам moment?
мне уже написали про то, что он медленный и много весит)
Eugene
что-то дока по date-fns не грузится на офф сайте
Deyl
Просто компонент очень легко без него локализируется
Anonymous
Как прикрутить алиасы путей для next+typescript? Добавил совершенно одинаковый алиас в tsconfig файл, и в вебпак резолвер, и в бабел module-resolver. Не заводится. Ide тоже не подтягивает. При том, если юзаю алиасы в JS файлах - норм, если в TS - ошибка при компиляции
Anonymous
"baseUrl":".", "paths": { "components/*": ["./components/*"] } Вот так в tsconfig файле
Anonymous
Думаю, может относительный путь берется не из того места, где файл лежит, а там где его некст лоэдер обрабатывает
Vlad
Кто то юзал? https://react-bootstrap.github.io/
Vlad
Лучше или хуже, чем: https://reactstrap.github.io/
Deyl
мне уже написали про то, что он медленный и много весит)
Не знаю насколько будет полезен этот пример, но думаю вы дальше разберетесь https://codesandbox.io/s/react-day-picker-examplesselected-6v9de
Deyl
Храню просто в unix timestamp
Deyl
так проще и позже можешь в дату сконвертировать
Eugene
да, я не подумал про это