Dmitry
Подскажите как реализовать «автоскролл»? Исходные данные: пользователь прокручивает в мобильнике экран до самого низа, там видит ссылку (<Link /> from ‘react-router’), переходит по ней. Ожидание: Показывается хедер нового открытого по ссылке компонента. Реальность: Показывается футер нового открытого по ссылке компонента.
Vadym
зачем??
есть родительский компонент. при нажатии на который появляется диалоговое окно с двумя кнопками: отменить и скачать. так вот, я хочу сделать так, чтобы при нажатии на "скачать" окно закрывалось и вызывался метод, который описан в компоненте ребенка
Dmitry
это харам
с чего это?
Vadym
а используя колбеки можно?
Sergey
а используя колбеки можно?
лучше обдумать распределение логики между компонентами и рефакторнуть
Daniil
добавляешь в useEffect или в didMount window.scrollTo(0, 0)
Только лучше с smooth, иначе будет неоч красиво скакать на том же фоксе
A
Всем еще раз привет, есть такой вот компонент withReports внутри него есть React.children.map(children, child => React.cloneElement(child, { filters })) И вот почему-то кидает map undefiend Вот вообще нет идей почему
Sergey
зачем делать максимально неочевидный код
A
😢
A
Зачем это вообще нужно
Ну чтобы прокинуть определённые значения в SalesByGroups, не делая при этом хуки
A
господи люди которые делают children.map должны усладиться
Не ну окей, если children.map с cloneElement говно, чтобы добавить внутри чайлда какой-то пропс, то что тогда не говно?
Vlad
Если такое есть в коде? Как поступить? return await new Promise((res, rej) => {
Sergey
разницы не будет только если этот код не завернуть в try/catch
Vlad
try/catch нет
Slava
помогите, не могу разобраться с асинком в реакте. Как вывести полученные данные?
Slava
Sergey
изучай что такое Promise как работает async/await что такое useState и useEffect
Sergey
В js я без проблем могу вывести
я написал список того, что нужно изучать
Alexandr
Всем доброго времени суток! Продублирую вопрос. Какие есть best practices для следующий ситуации: На странице слева отображается узкий список элементов. Справа большая область с детальной информацией о выбранном элементе. Эту информацию можно редактировать и состояние формы хранится внутри этого компонента редактирования. Когда пользователь выбирает в меню другой элемент необходимо перед выбором выполнить следующее: 1. Проверить есть ли изменения в текущей открытой форме 2. Если изменения есть - показать диалог с подтверждением действий 3. По нажатию на ДА уже выполнять выбор элемента в списке По нажатию на нет не выбирать элемент, а просто закрывать диалоговое окно. Вся проблема в том, что состояние изменен/неизменен и прочее хранится внутри формы и родитель не знает об этом, чтобы принимать решение о показе диалогового окна. Поднимать всю работу с формой наверх до родителя? Или можно как то колбэками разрулить?
Slava
Не понимаю как в ретурне эвэйт использовать
Тимофей 🛴
Sergey
изучай как работают Promise
Sergey
ибо ты не знаешь
Slava
Тебе сказали useEffect и useState
Братан. Я понял. Тут сообщения отложены на 15 сек. Я написал раньше, чем мне ответили, доходят с компа долго, отменить не могу
Slava
ибо ты не знаешь
Спасибо, в джс понимаю, в реакте не разбираюсь Пример нарочно ошибочно написан
Sergey
Спасибо, в джс понимаю, в реакте не разбираюсь Пример нарочно ошибочно написан
в жс ты тоже не можешь вытащить из промиса данные просто так (синхронно)
Slava
в жс ты тоже не можешь вытащить из промиса данные просто так (синхронно)
Там я в эвэйте бы вставил в дом свой текст, у меня на джс уже работает, то что я пытюась на реакте сделать. Не суть, спасибо за наводку
Sergey
синхронно никак нельзя
Slava
синхронно никак нельзя
Дада, я понимаю))) Я впервые трогаю реакт прост)))
Tray
Добрый день. Не могли бы вы мне подсказать, как мне поступить в следующей ситуации. Допустим у меня есть класс Requester. Конструктор принимает некоторый набор параметров, в зависимости от рабочей среды клиента (например, креды из AD). Соответственно экземпяр класса я инициализирую в index.js-е. Пока-что я передавал его в качестве пропса в app.js (основной компонент). Но походу разработки этот объект мне понадобиться в различных частях приложения. Из названия вероятно понятно, что класс связан с запросами. Сейчас я передаю этот объект из app.js в парочку action-ов, которые я описываю в ActionCreators (вроде это так называется, ну диспатчу, что бы в стор данные затянуть).
Tray
Так вот, можно как-нибудь сделать так, что бы этот объект был доступен в ActionCreator-ах? Ну или хотя бы в любой точке приложения без передачи через пропсы.
Vitaliy
без передачи через пропсы - использовать контекст
Dmitriy
вот так примерно будет выглядеть
Низя в эффект асинхронную передавать , где то issue был
Vitaliy
вообще странное решение, зачем там класс вообще ?
Tray
Ну а как? Типа специальный объект, который строиться в приложении в зависимости от клиента. Например, из AD у меня есть группа, по группе я могу разграничить отображени. Есть еще контекст коробки, в которое данное приложение встроенно, типа, источник вызова. Соответственно, в разных случаях открытия приложуха должна использовать различные параметры при вызове api.
Vitaliy
какую-то обертку над запросом вроде этого https://stackoverflow.com/a/43051779
Darya
Всем привет, мы завтра проводим конференцию по трендам веб-разработки и soft skills. С разрешения @sergeysova, хочу предложить вам бесплатные пригласительные по промокоду TECHSKILL: http://getitconf.com/ Если будут воппросы - пишите 😉
Артем
Ребят,а что делать если редукс не успевает возвращать данные?
Anonymous
I
Ребят,а что делать если редукс не успевает возвращать данные?
Это как "не успевает"? Редьюсер меняет стейт, стейт летит в пропсы компонента, компонент обновляется, должно работать как-то так, не?
Tray
какую-то обертку над запросом вроде этого https://stackoverflow.com/a/43051779
Да, только эта обертка принимает некоторые параметры от клиента, и соответственно в зависимости от параметров вызовы выглядят по разному.
Tray
Ну вот на примере. export const getContactInfo = (Requester, selectedContractId) => { return dispatch => { Requester.RetrieveServer('contacts', selectedContractId, (response) => { return { type: actionTypes.CONTACT_RESPONCE, data: response } }) } } Вот как сделать так, что бы он был достпуен в getContactInfo без передачи.
Артем
Хорошо,такой вопрос,как правильно выводить данные из Redux? если у меня от сервера приходят масивы и я их записываю в redux через .map?
Vitaliy
ну так импортировать, а там в другом файле -- export new Requester('mytoken')
Vladimir F
Подскажите пожалуйста как ограничить ввод чисел. Вот метод для добавления
Pavel
Pavel
есть форма, в которой после авторизации появляются данные, реакт естесн ругается что value не конролируется, пользователь должен при возможности изменять данные, и пересохранять(например если поменялся номер телефона) но я не вьеду пока как мне изменять велью, которое уже есть, куда капать? задиспатчить к экшену? и перерендеривать при каждом изменеии? компонент функциональный
blvck
Привет всем, кто-то пробовал ставить react-slick на старый реакт (15 версии к примеру) ?
Tray
И еще момент, 1 из параметров запроса - это errorCallback. Сейчас я его диспатчу в качестве второго колбэка в своих эшонах. export const getContactInfo = (Requester, selectedContractId) => { return dispatch => { Requester.RetrieveServer('contacts', selectedContractId, (response) => { return { type: actionTypes.CONTACT_RESPONCE, data: response } }, (error) => dispatch(handleError)) } } Как можно передать этот экшн конструктору Requester-а, если Requester у меня инициализируется в index.js, до инициализации стора и обертки основного компонента в редукс. Типа Requester(params, (error) => dispatch(handleError))
Anonymous
Внесу немного юмора, вот что думает о себе компания (пол письма занято этим) Золотой призер в номинации «Лучшее приложение услуги» от Tagline с проектом создания мобильного приложения для городского велопроката г. Москвы. Серебряный призер в номинации "IT-проект, изменивший бизнес" от Value-Added People с проектом разработки системы онлайн трансляции FIDE WorldChess. Золотой партнер Microsoft. 15-ое место в категории «Самые вовлеченные сотрудники» ежегодного рейтинга работодателей России от компании «HeadHunter». 15-ое место в категории «Лидеры ИТ и Интернет индустрии» по версии РБК. 22 место в категории «Крупнейшие разработчики мобильных приложений для бизнеса и госструктур 2017» по версии cnews. Первые в мире разработали индекс криптовалют «Crypto100». Что по факту - боди шоп через боди шоп, инкапсуляция сотрудника
Andrew
Внесу немного юмора, вот что думает о себе компания (пол письма занято этим) Золотой призер в номинации «Лучшее приложение услуги» от Tagline с проектом создания мобильного приложения для городского велопроката г. Москвы. Серебряный призер в номинации "IT-проект, изменивший бизнес" от Value-Added People с проектом разработки системы онлайн трансляции FIDE WorldChess. Золотой партнер Microsoft. 15-ое место в категории «Самые вовлеченные сотрудники» ежегодного рейтинга работодателей России от компании «HeadHunter». 15-ое место в категории «Лидеры ИТ и Интернет индустрии» по версии РБК. 22 место в категории «Крупнейшие разработчики мобильных приложений для бизнеса и госструктур 2017» по версии cnews. Первые в мире разработали индекс криптовалют «Crypto100». Что по факту - боди шоп через боди шоп, инкапсуляция сотрудника
По два гребка в секунду ?)
Anonymous
По два гребка в секунду ?)
- Вы что нить слышали про ibs group? - нет - а это крупнейшая компания на российском рынке it /* рабства */ - хм... // мысленно поздравляю и гулгю - ну что вы готовы пройти тех собеседование - // нахожу это "Две основные компании, входящие в группу, — компания IBS (IBS IT Services) и Lux*ft", говорю слушайте давайте я подумаю и вам перезвоню =)))
Anonymous
Интересно есть в группе кто нить из этих компаний...
Sasha
Гайз, а почему этот код не апдейтит стейт? Обязательно ли делать дипкопи? clickHandler = (item, i) => { const { data } = this.state; data[i].disabled = !data[i].disabled; this.setState({ data }); };
Kirill
ссылка на объект ж не поменялась
Sasha
ссылка на объект ж не поменялась
Вот это я понимаю, то есть без копирования никак? И как будет наиболее православно?
Sm•ok
Вот это я понимаю, то есть без копирования никак? И как будет наиболее православно?
data.map if index = i ретурнишь чуть другое, иначе старое значение