arts
Они это любят
Default
В доке по питону :-)
В руби любят больше
Roman
канальчик по node.js подскажите плз )
Илья | 😶☮️🐸
Ivan
Подскажите, пожалуйста, из-за чего Invariant Violation: Browser history needs a DOM может происходить помимо дублирования хистори, и вложенных роутеров?
Donald
какой учебник по react топовый, чтобы с задачками?
Mal
какой учебник по react топовый, чтобы с задачками?
А какие ты хочешь задачи с реакт?
Alexander
Помогите с reselect. Идет запрос на сервер. Сервер каждый запрос отдает одинаковый ответ. Есть такой селектор const messageSelector = createSelector( state => state.message, message => { if (!message) return; return { name: message.name, state: message.state, status: message.count < 100 ? 'OK' : message.count < 1000 ? 'Warning' : 'Error', }; } ); В итоге данные те же самые, но просходит перерендер. Что не так?
Kurzdor
🙈🙊🌚
Блять, я только щас азметил что там идёт переопределение метода setState, блять, как же я ору с себя и с автора данного кода
Kurzdor
Я б на месте тебя прям его уебать хотнл бы за такое
Kurzdor
какой учебник по react топовый, чтобы с задачками?
Дока по реакту для любителей практики чем зуборёжки
Kurzdor
Ну там приложения ты сразу создаешь
Kurzdor
А что такое манки-патчинг?
Это когда нативные методы языка переопределяют на свои
Kurzdor
К примеру String.prototype...
Aram
К примеру String.prototype...
А я бы push, pop всякие и sort у Array переопределил бы... Задолбало что они мутируют исходный массив
Aram
Помогите с reselect. Идет запрос на сервер. Сервер каждый запрос отдает одинаковый ответ. Есть такой селектор const messageSelector = createSelector( state => state.message, message => { if (!message) return; return { name: message.name, state: message.state, status: message.count < 100 ? 'OK' : message.count < 1000 ? 'Warning' : 'Error', }; } ); В итоге данные те же самые, но просходит перерендер. Что не так?
Стандартный реселект тебе тут не поможет, так как хоть содержимое ответа от сервера одинаковое, для js это все равно новый объект. В твоей ситуации у тебя есть несколько вариантов: 1) наслаждаешься жизнью, не парясь о таких мелочах 2) создаёшь в ответе от сервера поле, по которому ты проверяешь, что ответ не изменился и проверяешь на это поле перед диспатчем 3) делаешь deep equality сравнение полученных объектов каждый раз, когда приходит ответ от сервера (не делай так, пожалуйста)
Looch
там же ссылка другая каждый раз вот тебе и ренендер
🅅aleriy
кто-нибудь почерпнул для себя что-то интересное с конфы React-Russia 2019?
Listar
Можно ли в Create-react-app получать js бандл приложения 1 файлом ?
artalar
Помогите с reselect. Идет запрос на сервер. Сервер каждый запрос отдает одинаковый ответ. Есть такой селектор const messageSelector = createSelector( state => state.message, message => { if (!message) return; return { name: message.name, state: message.state, status: message.count < 100 ? 'OK' : message.count < 1000 ? 'Warning' : 'Error', }; } ); В итоге данные те же самые, но просходит перерендер. Что не так?
отдельно мемоизируйте name, state, message. Так же можно саму функцию обращения к апи закрыть так что она будет хранить последнее строковое представление ответа и сравнивать с каждым новым: если что-то изменилось возвращаем новый жисон, нет - старый (старую ссылку)
🅅aleriy
Да, последний доклад
то есть остальное можно пропустить? :)
artalar
то есть остальное можно пропустить? :)
Ну это индивидуально все же. Про релей еще может быть интересно
🅅aleriy
Ну и reshadow, если до этого не видел
решадоу посмотрел мельком, надо более глубоко изучить тему
Dimitri
Можно ли в Create-react-app получать js бандл приложения 1 файлом ?
можно если сделать eject и настроить вебпак
Anonymous
нид хелп плз
Anonymous
Promise.all([ new Promise(this.props.getCurrency), new Promise(this.props.getHotels) ]).then( results => { this.setState({referFetch: false}); } ) как передать параметр в фукцию внутри промиса (решено)
Anonymous
Зачем здесь Promise.all?
там вот такая шарманка // this.props.getCurrency(); // this.props.getHotels(); // this.props.getCountries(); // this.props.getTourOperators(); // this.props.getArrivalRegions(); // this.props.getMealTypes(); // this.props.getFlightClasses(); // this.props.getDepartCites(); // this.props.getTransferTypes();
Anonymous
пока все реферы не получу не отрисовывать страницу
artalar
можно если сделать eject и настроить вебпак
Не нужно делать эджект, достаточно craco / rewired
artalar
Не всегда
Те кому нужно, сами об этом знают, им советовать нет необходимости
Anonymous
Any one use Aws authentication with Facebook and Google plz help
Anonymous
Any one use Aws authentication with Facebook and Google plz help
Listar
https://github.com/arackaf/customize-cra#disablechunk
Да спасиб, через cra-rewire сделал
Anonymous
new Promise((resolve, reject) => this.props.getCurrency(resolve, reject, ...this.state.someData)) ??
у меня вообще все неправильно было просто у меня в каждой функции прописаны аргументы были onSuccess и onError, поэтому ошибки не было, надо было сделать так чтоб эти функции возвращщали промис и просто вызвать их Promise.all([ this.props.getCurrency(22), ... ]).then( ``` - ``` export const getCurrency = (successCb = () => {}, errorCb = () => {}) => (dispatch, getState) => { return new Promise ((resolve, reject) => { let state = getState(); let token = state.AppReducer.token; dispatch(fetcher({ url: `${API_URL}/references/currencies/`, token: token, success: (json) => { dispatch({ type: 'SET_CURRENCIES', payload: json }); successCb(json); resolve(json); }, error: (error) => { errorCb(error); reject(error); } })); }) };
Anonymous
както так
🅅aleriy
Слушайте ну такие портянки кода лучше через gist
🅅aleriy
Не читабельно же
Anton
Подскажите. <TextArea value={task} onChange={e => __handleSetMessage(e)} style={{ maxHeight: 150 }} /> При нажатии я добавляю таск в список, есть кнопка редактировать, как при нажатии кнопки редактировать заполнить textarea и дать возможность ее изменять ?
Dmytro
а где его хранить?
Vadim
а где его хранить?
в хранилище браузера
Ivan
а где его хранить?
Стейт хранит в себе данные, используемые. А токен можно в сторадже или дотенве, если не будет меняться в дальнейшем
Ivan
Ну и в основном миддлвейр пишут который должен срабатывать перед миддлвейром на запрос к АПИ, который получает и обновляет токен с какого-нибудь экшона бэка
Alexander
Ребят, всем привет! Ищу к себе в команду Junior/Middle инженера-разработчика клиентских приложений в компанию Waves в департамент спец.проектов. Обязанности: • проектирование и разработка пользовательского интерфейса высоконагруженного данными клиентского приложения на базе blockchain-платформы Waves; • проектирование архитектуры отдельных модулей и сервисов клиентского приложения; • проектирование и разработка Frontend-сервера(NodeJS, Express, GraphQL); • автоматизация тестирования приложения(Unit-тестирование, системное, интеграционное, End-to-end); • работа в тесной связке с другими техническими специалистами Agile-команды на всех этапах разработки, тестирования и запуска продукта, для полноценной и отлаженной интеграции интерфейсов; • написание технической документации. • непрерывная коммуникация и согласованность выполнения технических задач как внутри команды, так и с инженерами других команд. Обязательные умения и навыки: • высокий уровень владения HTML5 / CSS3(Flexbox) / JavaScript(ES6); • разработка SPA / PWA с помощью React; • опыт профилирования и debug’а кода клиентского приложения в различных браузерах; • уверенная работа на NodeJS, NPM / Yarn; • написание тестов с использованием Jest; • Webpack, Babel, линтинг кода (ESLint, Stylelint, MarkdownLint); • знание основ сетей и информационной безопасности; • уверенная работа с терминалом Linux и Git(SemVer); • основы UML Плюсом будет: • написание кода с использованием TypeScript; • написание NodeJS-приложений с использованием Koa / Express; • написание запросов и их обработка при использовании GraphQL / REST; • опыт использования GraphQL; • использование Docker / Docker-compose; • написание документации с использованием Storybook, Gitbook; • опыт разработки приложений с использованием Apollo Client / Relay; • опыт использования Styled-components; • опыт организации и проектирования клиентских приложений в монорепозитории на базе Lerna; • опыт написания интеграционных и E2E-тестов; • опыт написания Benchmark-тестов; • написание и запуск тестов с использованием Hermione; • опыт написания Pipeline’ов для GitLab CI/CD; • опыт использования графов, деревьев, связных списков, хэш-таблиц и алгоритмов для работы с ними в prod’е. Что мы предлагаем: • достойная з/п по результатам собеседования, в зависимости от опыта и знаний; • возможность участвовать в специализированных конференциях в качестве слушателя, так и докладчика; • performance review с внушительными премиями по результатам работы, по итогу года; • ДМС со стоматологией и массажем; • 80% -компенсация клубной карты в фитнес-центр премиум-класса, расположенный в центре Москвы • корпоративные программы изучения английского языка с их носителями (обучение в офисе); • собственная кухня в офисе, у нас всегда есть чем подкрепиться: закуски, фрукты, сладости... • бариста предложит и приготовит более 50 видов горячих напитков на выбор (кофе, чай, какао...) • просторный офис в центре столицы в километре от Кремля. В шаговой доступности от м. Кропоткинская, м. Полянка, м. Октябрьская, м. Третьяковская Кто заинтересовался вакансией, можете писать мне в личку - @a_a_rudenko
Anonymous
Ребят, всем привет! Ищу к себе в команду Junior/Middle инженера-разработчика клиентских приложений в компанию Waves в департамент спец.проектов. Обязанности: • проектирование и разработка пользовательского интерфейса высоконагруженного данными клиентского приложения на базе blockchain-платформы Waves; • проектирование архитектуры отдельных модулей и сервисов клиентского приложения; • проектирование и разработка Frontend-сервера(NodeJS, Express, GraphQL); • автоматизация тестирования приложения(Unit-тестирование, системное, интеграционное, End-to-end); • работа в тесной связке с другими техническими специалистами Agile-команды на всех этапах разработки, тестирования и запуска продукта, для полноценной и отлаженной интеграции интерфейсов; • написание технической документации. • непрерывная коммуникация и согласованность выполнения технических задач как внутри команды, так и с инженерами других команд. Обязательные умения и навыки: • высокий уровень владения HTML5 / CSS3(Flexbox) / JavaScript(ES6); • разработка SPA / PWA с помощью React; • опыт профилирования и debug’а кода клиентского приложения в различных браузерах; • уверенная работа на NodeJS, NPM / Yarn; • написание тестов с использованием Jest; • Webpack, Babel, линтинг кода (ESLint, Stylelint, MarkdownLint); • знание основ сетей и информационной безопасности; • уверенная работа с терминалом Linux и Git(SemVer); • основы UML Плюсом будет: • написание кода с использованием TypeScript; • написание NodeJS-приложений с использованием Koa / Express; • написание запросов и их обработка при использовании GraphQL / REST; • опыт использования GraphQL; • использование Docker / Docker-compose; • написание документации с использованием Storybook, Gitbook; • опыт разработки приложений с использованием Apollo Client / Relay; • опыт использования Styled-components; • опыт организации и проектирования клиентских приложений в монорепозитории на базе Lerna; • опыт написания интеграционных и E2E-тестов; • опыт написания Benchmark-тестов; • написание и запуск тестов с использованием Hermione; • опыт написания Pipeline’ов для GitLab CI/CD; • опыт использования графов, деревьев, связных списков, хэш-таблиц и алгоритмов для работы с ними в prod’е. Что мы предлагаем: • достойная з/п по результатам собеседования, в зависимости от опыта и знаний; • возможность участвовать в специализированных конференциях в качестве слушателя, так и докладчика; • performance review с внушительными премиями по результатам работы, по итогу года; • ДМС со стоматологией и массажем; • 80% -компенсация клубной карты в фитнес-центр премиум-класса, расположенный в центре Москвы • корпоративные программы изучения английского языка с их носителями (обучение в офисе); • собственная кухня в офисе, у нас всегда есть чем подкрепиться: закуски, фрукты, сладости... • бариста предложит и приготовит более 50 видов горячих напитков на выбор (кофе, чай, какао...) • просторный офис в центре столицы в километре от Кремля. В шаговой доступности от м. Кропоткинская, м. Полянка, м. Октябрьская, м. Третьяковская Кто заинтересовался вакансией, можете писать мне в личку - @a_a_rudenko
это бан, читаем правила
Alexander
сорян, не знал, что нельзя вакансию к себе в команду размещать. HR'ов долго ждать. хотел сам попробовать найти инженера)
Anonymous
@javascript_jobs
Roman
есть канал специальный, в описании чекай
🐏 Alexander
всем привет, как вообще в сообществе воспринимаются хуки, пишут ли в проде, нравится? В нашей команде хуки не нравятся, говорят, что классы все же удобнее и лучше читаемость
D_d
Народ вопросик. делаю в рендере render() { const {tickets, selectedCurrency} = this.state; return ( <div className="App">sdsd</div> ) } пишет ошибку Cannot read property 'tickets' of null
D_d
почему?
D_d
а где ?
D_d
Anton
всем привет, как вообще в сообществе воспринимаются хуки, пишут ли в проде, нравится? В нашей команде хуки не нравятся, говорят, что классы все же удобнее и лучше читаемость
везде же говорят, что не обязательно использовать или хуки, или классы. хуки нужны для того, чтобы избавиться лишних хоков, чтобы не преобразовывать простые компоненты в классы, если нужен стейт, чтобы можно было переиспользовать логику
🐏 Alexander
а где ?
весь класс выложи, где-то выше направильно стейт задаешь
D_d
вообще не задаю его. секунду
D_d
Daniil
так а где ты берешь стейт если ты его нигде не задаешь
🐏 Alexander
ну вот ты сам говоришь, что стейт не задаешь, поэтому низя получить поляз из стейта
D_d
в конструкторе его объявить просто как пустой можно?
Daniil
можно, что за интерфейс State вообще вверху
Daniil
к чему он?
Daniil
ты так хотел стейт пробрасывать?
Mikhail
typescript