Bogdan
а вот проблема еще в таком хуке, типо если одно из полей изменилось, происходит перерендер, даже если оно не используется на екране
Oleg
Ребята, кто шарит в react-virtualized, есть какой-то способ достать данные из конкретной ячейки имея ее индекс через их апи?
Oleg
Не стоит использовать вёрстку в качестве источника данных
причем тут верстка? виртуалайзд у себя хранит эти данные внутри, мне нужно их достать
Oleg
в крайнем случае так и буду делать, доставать из дома
Dmitriy
причем тут верстка? виртуалайзд у себя хранит эти данные внутри, мне нужно их достать
а ты не можешь достать данные из того источника откуда они попадают а react-virtualized ?
Oleg
а ты не можешь достать данные из того источника откуда они попадают а react-virtualized ?
проблема в том, что индекс по которому мне нужно достать данные абсолютен (относительно начала таблицы в ui), а данные не обязательно есть все (к примеру юзер проскроллил какую-то область пропуская, соответственно у меня дыра в массиве данных)
Oleg
я уже придумал как это решить, определять сколько элементов в массиве не хватает по дате и корректировать индекс исходя из этого, но чет такое себе)
дикий
А куда лучше деплоить базу данных PostgreSQL? Какие есть платные и бесплатные способы?
дикий
Или какую БД лучше использовать, допустим, для мессенджера? Подойдёт ли firebase? Или производительности нехватит?
дикий
И ещё)) Не посоветуете книгу по паттернам проектирования в react? Сборник лучших практик. Что-то такое
Денис
PostgreSQL - лучше ее и оставь, она бесплатная + документация хорошая, так же ещё актуальна Oracle, но за нее придется заплатить мани)
Денис
А куда лучше деплоить базу данных PostgreSQL? Какие есть платные и бесплатные способы?
Денис
https://m.habr.com/ru/post/418581/ Это основы react, там конечно не разбираются многие вещи, но как база самое то, остальное уже после сможешь понять надо оно тебе или нет + не забывай про Ютуб, там тоже материала много)
Денис
И ещё)) Не посоветуете книгу по паттернам проектирования в react? Сборник лучших практик. Что-то такое
дикий
Спасибо большое
Александр
Anonymous
Или какую БД лучше использовать, допустим, для мессенджера? Подойдёт ли firebase? Или производительности нехватит?
Дело не в базе, а в архитектуре и серверах. Вам нужны распределённые очереди и своё решение. Облачные решения разорят.
Дима
Это шутка про производительность? Сколько человек аудитория месседжера?
мессенджеры крайне требовательны к производительности решений прямо со старта, не стоит делать безаппеляционных утверждений если не разбираешься
Victor
Для mvp хватит и cloud based
Anonymous
😂
Anonymous
Задеплойте сервер по спецификации matrix (на официальном github есть сервер) и вот ваше MVP с готовым протоколом и децентрализацией.
Mikhail
У кого могут быть ресурсы и желание делать свой мессенджер
Mikhail
Зачем?
Mikhail
Какая бизнес задача стоит за требованием сделать свой мессенджер
Sergey
Чтоб избавится от фатального недостатка
Kurzdor
народ а почему данный код работает и не выдает ошибок? class .... { state = { streamInstance: null, constraints: { audio: false, video: { width: { min: 360, ideal: 640, max: 1920 }, height: { min: 240, ideal: 480, max: 1080 }, }, }, } method = () => { this.state.streamInstance = navigator.mediaDevices.getUserMedia( this.state.constraints ) this.state.streamInstance .then(stream => { console.log(stream) this.streamToVideoEl(videoEl, stream) }) .catch(err => console.log(err)) } }
Mikhail
Есть для общения с клиентами есть интерком, для всего остального телеграм
Kurzdor
я про то что this.state.streamInstance пашет
Kurzdor
и его же можно закрыть
Kurzdor
чзх
Mikhail
Это вопрос: Какая бизнес задача стоит за требованием сделать свой мессенджер?
Anonymous
> сделать свой мессенджер Ошибка.
Kurzdor
а блять
Александр
мессенджеры крайне требовательны к производительности решений прямо со старта, не стоит делать безаппеляционных утверждений если не разбираешься
Месседжеров не делал, так что куда мне до вас. Подумалось просто, что при такой формулировке вопроса, речь идёт не о серьёзном проекте, а просто о пет-проекте для саморазвития.
King
Недавно в этом чате говорили что с помощью хуков можно воспроизвести любой хок Как сделать хуковый эквивалент хока withLoading, который если среди приходящих пропсов есть loading: true, возвращает компонент крутилку?
King
Во, самое главное различие что хуки не могут контролировать рендер в той же степени, что и хоки Можно конечно сделать хук который возвращает компонент (наверное, никогда таких не делал, выглядит странно) и делать return useLoading(props) Все же это не то, мануальная передача пропсов + мануальное возвращение, а с хоками все на автомате
Александр
Вас никто не заставляет же от HOC отказываться
King
Вас никто не заставляет же от HOC отказываться
Один джентельмен из этого чата пытался)
Kurzdor
Ребят, я тут пишу кое что интересное и мне бы надо узнать что я неправильно пишу на самом начале развития проекта кто хочет в лс сделать кодревью, дать замечания?
Kurzdor
да боюсь идею стыбзят
Kurzdor
могу в лс?
🤴👷‍♂️🦸‍♂️🧚‍♀️
Привет. Поясните почему это так написанно https://github.com/facebook/react/blob/master/packages/react/src/ReactBaseClasses.js#L125 const pureComponentPrototype = (PureComponent.prototype = new ComponentDummy()); pureComponentPrototype.constructor = PureComponent; Зачем так сильно костылить прототипы и конструкторы?
King
эта и была задача хуков. Разделить логику и и представление еще сильнее и сделать очевидным код. А так врапнул хоком а он кучу дом элементов докинул и потом сиди ищи какая падла это сделала
Компоненты это ведь не представление, и совсем не обязаны возвращать дом элементы, и хок тоже не обязан возвращать дом элементы, т.е. это ответственность того кто пишет код, а не хоков Говнохуки тоже возможны
King
А в чм проблема сделать просто компонент Loading ?
Никаких :) это был просто мысленный эксперимент
King
Просто это неочивидно. Что происходит когда ты оборачиваешь в тот или иной хок? Нужно знать доку или смотреть в хок. С хуками очевидние.
Согласен с тем что композиция логики с хуками идет лучше, но никакой магии, с хуками тоже можно сделать что-то типа useEverything() и все туда напихать
King
и потом гадай че делает хук)
bogdan
ребят можете подсказать почему происходят такие вещи, я ввожу чтото в инпут и юзаю setstate , но происходит опоздание на один ввод
bogdan
bogdan
rovnyart
ребят можете подсказать почему происходят такие вещи, я ввожу чтото в инпут и юзаю setstate , но происходит опоздание на один ввод
потому что setState не работает мнговенно, чтобы законсолить значение стейта после вызова setState, нужно твой onSearch сделать асинхронным, сделать await this.setState. но так тоже никто не делает, лучше мониторь state в рендере, потому что каждый setState вызывает перерендер
Dmitriy
Что произойдёт когда ты юзнешь хук? Так же не очевидно. Может он внутри ошибку сделает
я согласен. Но по крайней мере он может быть очевиднее возвращаяя что-то а не магичекски добаляя логику или реакт элементы обертки или еще что-то. С хоками просто нереально добится такой очевидности
Віталій
но так делать не стоит, да :)
King
я согласен. Но по крайней мере он может быть очевиднее возвращаяя что-то а не магичекски добаляя логику или реакт элементы обертки или еще что-то. С хоками просто нереально добится такой очевидности
Ну, абстракции как раз таки для этого и нужны) чем ниже мы идем в уровень абстракций тем более полную картину мы видим, но нам это не всегда нужно. Иногда достаточно знать что принимает данный уровень абстракции и что возвращает (black-box behavior), и не запариваться деталями имплементации Хоками не добиться того же уровня абстракций что дают хуки и наоборот тоже, вдруг ты запаришься передавать внутрь пропсы и писать return стэйтменты, тогда очевидно тебе поможет хок
Віталій
bogdan
Roman
но так делать не стоит, да :)
почему это не стоит?
bogdan
Либо накинуть коллбэк
пробовал через коллбек не пашет
bogdan
Либо накинуть коллбэк
там тоже почемуто получаеться опоздание
Kurzdor
пробовал через коллбек не пашет
this.setState({}, () => console.log(...))?
Kurzdor
Рили?
Kurzdor
Я на проекте это юзаю, пашет
bogdan
да,реально било запоздание ,на один ввод , а потом сделал асинк и заработало
Kurzdor
Вот так делать не надо наск я помню