rovnyart
А у вас в случае ошибок белый экран просто, или вы как-то по другому ошибки обрабатываете? Или идеальный код пишете и данные с бэка всегда 100% верные?
ну мы используем try-catch в дата-провайдере, ловим ошибки и выкатываем их на фронт notystack-либой, не вижу смысла в componentdidcatch более чем полностью
🤴👷‍♂️🦸‍♂️🧚‍♀️
ты удивишься когда узнаешь сколько пережитков тебе привалит вместе с баклоскриптом
я видел, и писал - это ужас. Но я до сих пор на классах пишу, да)
focus
у
🤴👷‍♂️🦸‍♂️🧚‍♀️
ето обман чтобы набрать классы
а ты умеешь в i18n, можно тебе в лс написать?
focus
а чому нельзя стикеры кидать
🤴👷‍♂️🦸‍♂️🧚‍♀️
Iskender
Ребят привет, помогите плиз, не пойму, что делаю не так: Есть в экшенах следующее: const SORT_BY_ALPHABET = 'SORT_BY_ALPHABET' ; export const sortByAlphabet = () => ({ type: SORT_BY_ALPHABET }) в редьюсере: case SORT_BY_ALPHABET: const sorted = state.contacts.sort((a,b) => { if(a.firstName < b.firstName) { return -1 } if(a.firstName > b.firstName) { return 1 } return 0; }); return { ...state, contacts: sorted } в самом компоненте: sortByAlphabet = () => { this.props.dispatch(sortByAlphabet()); } <button onClick={this.sortByAlphabet}>По алфавиту</button> Где моя ошибка?
Oleg
Просто this.props.sortSooka() И диспатч напиши const mapDispatchToProps ... И в connect передай.
Iskender
В this.props.dispatch
но ведь работало и так при исполнении других экшенов?
Iskender
Перефразируй, я не понял.
т.е. у меня есть экшены добавления, удаления, изменения и везде я их вызывал this.props.dispatch(...) и везде отрабатывало как надо
Oleg
Как экспорт написан?
Oleg
export default connect(...)?
Iskender
Да, но без использования mapDispatchToProps, напрямую вызывал this.props.dispatch(...)
🤴👷‍♂️🦸‍♂️🧚‍♀️
Тут все спрашивай
как настроить лучше i18n для статичной html страницы? на чистом жс с минимумом зависимостей
🦜
Просто под i18n пытаются ещё и локализацию подмять
🤴👷‍♂️🦸‍♂️🧚‍♀️
Что именно? Текст заменить или что?
да, просто текст менять всего документа по нажатию кнопочки
🦜
да, просто текст менять всего документа по нажатию кнопочки
Тут просто все. Тебе нужен объект, куда ты будешь класть словарь или json. Заполняешь словарь, пишешь функцию, которая по ключи будет доставать значение из объекта и вызываешь ее там, где надо вернуть текст. Туглер просто возвращает тебе такой же объект, но с другим переводом
🦜
После можно сделать типо Бабель макроса, который вставит в твой html текст из словаря при билде
Дима
да, только html мы ещё с бабелем не конпелируем)
Iskender
Скопируй.
Извиняюсь за задержку. Экшн const SEARCH_CONTACT = 'SEARCH_CONTACT'; export const searchContact = (value) => ({ type: SEARCH_CONTACT, payload: value }) Редьюсер: case SEARCH_CONTACT: return { ...state, searchValue: payload } В компоненте searchContact = (e) => { const value = e.target.value; this.props.dispatch(searchContact(value)); } <input type="text" placeholder='Искать' onChange={this.searchContact} value={searchValue} /> Все работает
🦜
да, только html мы ещё с бабелем не конпелируем)
Я же сказал типо. Скорей всего в вебпаке какой-нибудь плагин есть
Iskender
Oleg
export default connect(mapStateToProps)(Contact);
Впервые вижу такую запись.
Oleg
export default connect(mapStateToProps)(Contact);
Проверь, в редьюсер заходит вообще?
rovnyart
!спам
rovnyart
или как там))
Daniil
Одмен надо кричать
Iskender
Проверь, в редьюсер заходит вообще?
а как это сделать, ну проверить?
Oleg
а как это сделать, ну проверить?
Консоль лог в редьюсере - самый банальный способ.
Oleg
Одмен надо кричать
Давно ли вы кричали?
Daniil
Давно ли вы кричали?
Ору каждый раз как вижу свой код
Oleg
Ору каждый раз как вижу свой код
Настолько смешной? Или страшный?
Daniil
🤔
Oleg
Проверил, все ок
Значит твоя сортировка говно. Давай по новой.
Oleg
Проверил, все ок
В js же есть функции сортировки встроенные.
Oleg
Используй их.
Panda
Всем привет. Необходимо сделать такую штуку, как подгрузка сообщений, когда пользователь докрутил до последнего загруженного сообщения. Как можно это реализовать? Вешать подписку на события scroll или возможно есть какие-то популярные подходящие либы?
Panda
intersection observer api
к сожалению не нашел полифила для ие10
Frontend Priest
к сожалению не нашел полифила для ие10
чем дольше поддерживаешь ие10, тем дольше будешь поддерживать ие10
Андрей Чайковский
Panda
чем дольше поддерживаешь ие10, тем дольше будешь поддерживать ие10
это не в моей компетенции решать) Плюс, а как подвешиваться на него? Смотреть, попадает ли в область видимости последний элемент?
Vadim
к сожалению не нашел полифила для ие10
Тебе нужен ие10? На каких динозавров работает ваша контора? Ладно бы ещё 11
Frontend Priest
это не в моей компетенции решать) Плюс, а как подвешиваться на него? Смотреть, попадает ли в область видимости последний элемент?
создавать отдельный компонент, который на один из своих дом элементов вешает обсервер и колбэчит на пересечение с вьюпортом
Frontend Priest
Frontend Priest
достаточно знать координату конца списка
Panda
Подписка + посчитать высоту всех сообщений
там есть проперти, которая говорит о текущей высоте
Looch
Это самы простой вариант, посмотри как работает https://github.com/clauderic/react-tiny-virtual-list/blob/master/src/SizeAndPositionManager.ts
Frontend Priest
Это самы простой вариант, посмотри как работает https://github.com/clauderic/react-tiny-virtual-list/blob/master/src/SizeAndPositionManager.ts
> самый простой вариант > всё-таки подсчёт длины списка > 100+ строк тс
Looch
ну сори если это для тебя сложно
Vadim
к сожалению не нашел полифила для ие10
https://github.com/w3c/IntersectionObserver/blob/master/polyfill/README.md вот тут ие7+. Как-то ты плохо искал
Frontend Priest
ну сори если это для тебя сложно
да, я оч тупой, пишу 2 строки вместо 100 (найс наезды)
Looch
лоол 2 стрки https://github.com/w3c/IntersectionObserver/blob/master/polyfill/intersection-observer.js
Looch
окей
Andrey
лоол 2 стрки https://github.com/w3c/IntersectionObserver/blob/master/polyfill/intersection-observer.js
так то да, полифил же необязательно грузить тем, кому он не надо
Bogdan
а все, понял
а ну я еще переделал, на проекте жи рекомпоооз, просто в withHandlers вынес все
Mido
Коллеги, быстрых решений не бывает однако спрошу, у меня на странице есть ресайзбл окошко. а внутри свечной график. Задача, я когда навожу курсор на график, и хочу колесом смасштабировать график, у меня график почти не меняется, зато вся страница вверх вниз. А когда нажимаю на график и хочу его перетянуть, то тяну не график а окно которое хоть и может менять своё месторасположение, однако не в этом случае. Вопрос: может есть некая настройка которая может акцентировать внимание мышки на графике, и пока она там что бы мышка думала что ничего больше нет?
Alexandr
Подскажите пожалуйста, девсервер сконфигурировать с CRA не получится? Eject нужно делать?
Alexandr
rewired умеет в такое
Спасибо, гляну
Yura
пацаны может кто поможет - пытаюсь создать стор через createstore(redux) пишит типо что reducer will be a function
Yura
Yura
Alexandr
я combine reducers юзаю, попробуй
Yura
Если перенести эту же функцию в файл store то все норм