Anonymous
Контенкст юзал, document.getElementById не будет работать с функциональыми компонентам
Почему это не будет? Ставишь футеру id или класс, а когда чел кликает на анкор тупо через dom ищешь элемент и туда скролишь, прямо как на джиквери
🐝 dmitriy
потому что нода c id в виртуальном dom, а document.getElementById обращается к уже существующему dom, не виртуальному
Anonymous
потому что нода c id в виртуальном dom, а document.getElementById обращается к уже существующему dom, не виртуальному
все будет нормально ты в момент клика резолв делаешь и если элемент на странице есть всё отработает
🐝 dmitriy
Я предлагаю тебе проверить самому
Dmitry
не пиши формы на реакте 🤷‍♂️
Лол. Фронтенд это формы
Sergey
делал сайт на 100+ компонентов с одной формой - вход, ЧЯДНТ?
Anonymous
Я предлагаю тебе проверить самому
https://jsfiddle.net/spatnehochu/9w3d2ts5/7/
🐝 dmitriy
Вот мой пример: https://jsfiddle.net/ykqzporn/ 🙂
Sergey
🐝 dmitriy
https://jsfiddle.net/spatnehochu/9w3d2ts5/7/
Изучаю твой пример! Спасибо!
Anonymous
Вот мой пример: https://jsfiddle.net/ykqzporn/ 🙂
Ну не удивительно, в момент запроса к дому его и не существует, собственно и ref.current так же будет null в этот момент.
🐝 dmitriy
Ну не удивительно, в момент запроса к дому его и не существует, собственно и ref.current так же будет null в этот момент.
Да, и я это описал выше, у тебя все работает потому что все рендерится в одном родительском компоненте, потому что у тебя пример сферичский в кубе 🙂 В продакшене компонент Линки может быть заимпорчен в любую пейджу или другой компонент, и нет гарантии что ноды с id и линк к ней окажутся в одном родителе
Anonymous
Да, и я это описал выше, у тебя все работает потому что все рендерится в одном родительском компоненте, потому что у тебя пример сферичский в кубе 🙂 В продакшене компонент Линки может быть заимпорчен в любую пейджу или другой компонент, и нет гарантии что ноды с id и линк к ней окажутся в одном родителе
Нет, ты не прав, мой пример будет работать хоть в каком угодно случае, потому что он оперирует нативным поведение браузера, а резолс происходит во время события, в данном случая это будет работать даже если у тебя будет два instance react. https://jsfiddle.net/spatnehochu/9w3d2ts5/16/
Dmitry
делал сайт на 100+ компонентов с одной формой - вход, ЧЯДНТ?
Количество компонентов ничего не говорит
Anonymous
А мне кажеться уже что это ты меня тролишь, причем тут родитель?
Anonymous
У тебя не работал код потому что, ты перепут немного рефи и ноды, а ещё у тебя вообще футер не рендерился, то есть его просто не было
Nikita
о, preact сайтец обновили. Симпотично выглядит и доку на 10, они даже сделали свой preact-create-app
🐝 dmitriy
А мне кажеться уже что это ты меня тролишь, причем тут родитель?
Извини, не правильно понял, но когда я делаю тоже самое внутри gatsby js, это не работает, может там рендерится страница не с помощью react-dom
🐝 dmitriy
Чувствую надо сделать пример на gatsby, все равно пасиб!
Nikita
а что поменялось то?
ну обновили дизайн, обновили доку под 10 версию, добавили cli.
Anonymous
Чувствую надо сделать пример на gatsby, все равно пасиб!
да пожалуйста разберись во всем сначала, и если выложишь и не будет работать, пиши я гляну на этого гэтсби.
Oleksii
этому дизайну уже лет 200 наверное)часто на сайт заходишь?
Nikita
я тут из доки преакта узнал, что у реакта нет onInput, сижу на реакте 9 месяцев, только сейчас узнал этот факт. Как я не замечал этого, вообще не понятно... Я часто сразу прибегал к formik и rff, но юзал так же импуты от семантика, и думал, что там убрали эвент onInput "просто потому, что" и смирился с этим фактом, лол.
Nikita
значит не так понял.
Nikita
И в чем разница с onChange?
ну если без реакта, то разница была бы в том, что onInput отрабатывает на каждый ввод символа, а onChange срабатывал бы когда импут блюрился.
Nikita
я смотрю автор preact идет скорей по пути vue/angular, чем реакта. У них расширяемый preact-cli (как vue-cli), свой роутер, свой стор и прочее.
Anonymous
я смотрю автор preact идет скорей по пути vue/angular, чем реакта. У них расширяемый preact-cli (как vue-cli), свой роутер, свой стор и прочее.
C одной стороны это плохо все завязывать на себя, с другой стороны дешевле обходится. А я бы не стал что-то серьезное писать на vue, потому что их код пахнет
Андрей
C одной стороны это плохо все завязывать на себя, с другой стороны дешевле обходится. А я бы не стал что-то серьезное писать на vue, потому что их код пахнет
Завязывание на себя не обязывает использовать роутер преакта, не обязывает использовать стор преакта.
Anonymous
Завязывание на себя не обязывает использовать роутер преакта, не обязывает использовать стор преакта.
Это пока не все 99% проектов будет писать на экосистеме, а потом все остальное отмирает, а потом под тяжестью монолита подыхает вся экосистема.
Alexey
Гайз я тут завис на мысли... Если мы делим компоненты на контейнеры и презентационные.. Сейчас я использую Storybook активно в проекте, и хочу его оставлять максимально независымым от store. Получается что некоторые компоненты деляться на презентационный, и контейнер для него же, только который уже знает о существовании сторы, сервисов и тд... Вопрос заключается в том, что делать со "сквозными пропсами"? Пропсы типа колбеков onTItleClick, onPlatformChange, а так же пропсы из серии initialTab, defaultButtonText и подобные. Вроде как напрашивается мысль что абсолютно нормально их прокидывать "сквозняком" Но наличие тайпскрипта в проекте заставляет задумываться об этом каждый раз, когда прописываю один и тот же пропс для презентационного и для контейнера (да, я понимаю что можно создать общий тип/интерфейс и использовать его в обоих случаях. Но все же вопрос на сколько это нормально? Или может я что-то делаю вообще не так??
Так
Гайз я тут завис на мысли... Если мы делим компоненты на контейнеры и презентационные.. Сейчас я использую Storybook активно в проекте, и хочу его оставлять максимально независымым от store. Получается что некоторые компоненты деляться на презентационный, и контейнер для него же, только который уже знает о существовании сторы, сервисов и тд... Вопрос заключается в том, что делать со "сквозными пропсами"? Пропсы типа колбеков onTItleClick, onPlatformChange, а так же пропсы из серии initialTab, defaultButtonText и подобные. Вроде как напрашивается мысль что абсолютно нормально их прокидывать "сквозняком" Но наличие тайпскрипта в проекте заставляет задумываться об этом каждый раз, когда прописываю один и тот же пропс для презентационного и для контейнера (да, я понимаю что можно создать общий тип/интерфейс и использовать его в обоих случаях. Но все же вопрос на сколько это нормально? Или может я что-то делаю вообще не так??
задрочен ты, бедняга, гуд практисами
Seva
как в webstorm изменить комб. клавиш на prettier ?
Seva
всё нашел))
Андрей
Это пока не все 99% проектов будет писать на экосистеме, а потом все остальное отмирает, а потом под тяжестью монолита подыхает вся экосистема.
А потом ты просыпаешься и видишь в ужасе, что куча экосистем как на фронте, так и на беке живёт так как я описал.
Anonymous
Гайз я тут завис на мысли... Если мы делим компоненты на контейнеры и презентационные.. Сейчас я использую Storybook активно в проекте, и хочу его оставлять максимально независымым от store. Получается что некоторые компоненты деляться на презентационный, и контейнер для него же, только который уже знает о существовании сторы, сервисов и тд... Вопрос заключается в том, что делать со "сквозными пропсами"? Пропсы типа колбеков onTItleClick, onPlatformChange, а так же пропсы из серии initialTab, defaultButtonText и подобные. Вроде как напрашивается мысль что абсолютно нормально их прокидывать "сквозняком" Но наличие тайпскрипта в проекте заставляет задумываться об этом каждый раз, когда прописываю один и тот же пропс для презентационного и для контейнера (да, я понимаю что можно создать общий тип/интерфейс и использовать его в обоих случаях. Но все же вопрос на сколько это нормально? Или может я что-то делаю вообще не так??
Я как то сделал что нужно один раз писать, не помню правда как, на другом ноуте проект тот, новый конечно буду так же делать
Alexey
Я как то сделал что нужно один раз писать, не помню правда как, на другом ноуте проект тот, новый конечно буду так же делать
Ну КАК написать - дело десятое. Основной поинт вопроса был в том "на сколько это адекватный подход"?
Anonymous
Ну КАК написать - дело десятое. Основной поинт вопроса был в том "на сколько это адекватный подход"?
Мне было очень удобно, себя оправдало, с типами дня два разбирался, там не все так легко как кажется.
Anonymous
Хотя сейчас с типами наверно уже лучше будет
Zaff
как обращаться к пропсам компонента внутри функции промис? (закидайте тапками)
Nikita
как обращаться к пропсам компонента внутри функции промис? (закидайте тапками)
заменить обычные функции на стрелочные или сохранить контекст в переменной выше
Артём
Добрый день. Подскажите как обойти эту проблему? from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Elena
Всем привет! Ищем в Новосибирске преподавателя по React, буду благодарна рекомендациям. Если можно в личку :)
George
спс
Как к беку обращаешься?
Дима
Ребята, пробую собрать реакт-приложение: npm run build Но на выходе в build/index.html пустая страница есть мысли, что делаю не так? (буду благодарен за ответ)
Дима
всё вышло)
Oleg
Открыл для себя rxjs, наблюдатели и реактивное программирование. Этот паттерн часто используют с реактом?
Oleg
Добрый день. Подскажите как обойти эту проблему? from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Подними собственный бэкенд сервер и через него получай данные. если сервер твой, добавь заголовок в настройках сервера
Дмитрий
Подскажите, как поправить. Из data.json беру инфу. Там 2 поля city и population. Короче надо вывести в селекте все города, где population больше 50000.
Дмитрий
код текстом выложи
function CityRend() { var cities = data.map(function() { if (cities[1].population > 50000) { return ( <option> {cities[1].city} </option> ); } } ); } function CitySelection() { return ( <select> <CityRend /> </select> ); }
Alga
Подскажите, как поправить. Из data.json беру инфу. Там 2 поля city и population. Короче надо вывести в селекте все города, где population больше 50000.
function CityRend() { return (data.filter(function(item) { if (item.population > 50000) { return ( <option> {item.city} </option> ); } return false; } )) }
Sergey
Подскажите, как поправить. Из data.json беру инфу. Там 2 поля city и population. Короче надо вывести в селекте все города, где population больше 50000.
тело function CityRend замени на return data.filter(({ population }) => population > 50000) .map(({ city }) => ( <option> {city} </option> ));
Sergey
Ну reduce же
человек map не может понять, рано ему еще reduce
Evgen
зачем 2 раза перебирать массив?
Чтобы отделить фильтрацию и формирование jsx
Андрей
ok, но хватит и 1 раза.
Читаемость важнее, чем экономия на спичках.
Serik
ок)
Evgen
ok, но хватит и 1 раза.
Это разделение обязанностей. Запихивать все в одну функцию может сказаться на скорости выполнения, но никак не на удобстве чтения и поддержки