0:00 Вступление, Запугивание сложностями, Подбадривание 3:55 Формулируем задачу с сортировкой 5:31 Изучаем запросы и сортировку в Mockapi 12:40 В чем проблемма со state 19:10 Записываем в state выбранную категории 30:52 Логика вывода на страницу товар по категориям 37:02 Логика вывода на страницу товар по сортировке 53:00 Более точная настройка вывода по сортировке 1:02:01 Резюмируем
@klogachev2 жыл бұрын
Делаю сейчас маленький проект по твоему уроку. Застрял на этом видосе. Спасибо!!! тебе большое за подробное объяснение. Посмотрел его 4 раза. Наконец то дошло как пробрасывать функцию. С начало думал, зачем так подробно объясняешь и так вроде все понятно. Но на этом видосе, до меня реально доходило как до жирафа)))) Еще раз спасибо тебе за годный контент. +100500 так как ты его преподносишь!!!
@haibova_irisha2 жыл бұрын
спасибо за коментарий , думала одно не могу понять с первого раза этот видос
@КлимСомов-х6с2 жыл бұрын
Я такая-же фигня ;)
@pavelp73742 жыл бұрын
Смотрю первый раз, будет счастье если после 4-го что-то пойму! Начались ягодки!) Ни че не понимаю!)))
@UnKnown-ur9fq Жыл бұрын
это еще цветочки.. начнется Redux - будет веселее😊
@СергейЦарелунг2 жыл бұрын
И хотел бы порекомендовать прикольные расширения для VS code. "auto import" для автоматического добавления импорта в компоненте. "html to jsx" для конвертации верстки в jsx. еще раз спасибо за науку и удачи Вам во всем.
@_mikser Жыл бұрын
Для сортировки по категориям, лучше в БД в массив категорий добавить несколько значений. Я добавил все пиццы категорию "0" и другую катерию подходящую пицце. Так как одна пицца может быть как "мясная" так и "острая". При таком добавлении нескольких категорий, сортировка всегда возвращает правильный список. "category": [0, 2, 5],
@constantindanilov2362 жыл бұрын
Арчаков - просто мастер объяснять!!!
@MaksTrueman2 жыл бұрын
Я просто добавил 2 маленькие кнопки сортировки по возрастанию и убыванию (↑, ↓) как во многих мобильных приложениях. const [orderType, setOrderType] = useState("asc"); setOrderType('asc')}> ↑ setOrderType('desc')}> ↓ в фетч запросе в конце &order=${orderType}
className={orderValue === 'asc' ? 'activeButton' : ''} .activeButton { background-color: $orange; color: white; } Добавьте стиль после hover-а и будет вам счастье
@dontexist70393 ай бұрын
Дружище,подскажи,пожалуйста, вдруг знаешь, что делать, если category=" + categoryId (32:22 время видео), mockAPI выдает как not found, а не пустой массив. У меня проект от этого крашится
@ЛусінеАтаджанян2 жыл бұрын
Лучшие курс по react! Продолжай а том же духе!
@ГеннадийГорохов-ц8н Жыл бұрын
Превосходное видео))) Получаю удовольствие когда обучаюсь)))
@jenek0512 жыл бұрын
Круто) не знал некоторых вещей, спасибо 🤘🤘😌🤗🤗
@rickbacker1Ай бұрын
Спасибо огромное за прекрасное объяснение!
@Boobnovslava Жыл бұрын
уже писал подобный комент, но очень нравится подход проблематика=>решение=> понимание
@YulVilaya Жыл бұрын
очень-очень рада что нашла ваши уроки. это первое приложение, которое я не просто повторяю за учителем , а делаю осознанно, эксперементирую по своему и не боюсь сломать приложение, потому что я тнаконец-то понимаю, что проиходит. ВЫ самый лучший учитель, я удивлена почему остальные блогеры-реакт не могут так просто обьяснить ? почему программисты так любят кидаться в новичков терминами чтоб последние ничего не понимали и думали 'блин, это очень сложно, я не смогу как он'. ВЫ ЧУДО 🤗 жаль нет вебки, хотелось бы видеть как вы выглядете
@АсманНарынбекУулу-у4я2 жыл бұрын
Можно сделать все гораздо проще просто надо в массив list добавть еще 2 ключа, я решил так и сделать и у меня работает так же как и у него но у меня читабельность кода лучше. Вот мой массив кому интересно const list = [ { id: 0, name: 'популярности (по убыванию)', sort: 'rating', order: 'desc' }, { id: 1, name: 'популярности (по возрастанию)', sort: 'rating', order: 'asc' }, { id: 2, name: 'цене (по убыванию)', sort: 'price', order: 'desc' }, { id: 3, name: 'цене (по возрастанию)', sort: 'price', order: 'asc' }, { id: 4, name: 'алфавиту (по убыванию)', sort: 'title', order: 'desc' }, { id: 5, name: 'алфавиту (по возрастанию)', sort: 'title', order: 'asc' } ]
@serhiikhotsyk869 Жыл бұрын
55:47 я просто добавил свойтсво 'order' = asc или desc в обьекты. А при запросе на сервер просто вставил нужный ордер и не нужно делать лишние условия и манипуляции со строками.
@UserDev12 Жыл бұрын
А я добавил отдельный стейт sortMethod который по умолчанию содержит "asc" а при клике на эту иконку рядом с сортировкой этот метод переключается с "asc" на "desc" и обратно. И также класс который в зависимости от метода сортировки разворачивает иконку на 180 градусов.
@UnKnown-ur9fq Жыл бұрын
классный урок, спасибо! только как-то сложно у тебя с этим списком сортировки где у нас "по имени", "цене", "популярности".. я не делал этот список кастомный так как ты, а просто использовал тег .. типо так популярности цене имени получается, что в моем случае каждый элемент имеет свое вшитое значение value в которое изначально мы можем записать все что угодно.. и это удобно, в ф-ции handleSelect мы просто передаем value в setSelectCategory const handleSelect = function (event) { setSelectCategory(event.target.value) }; но, твой способ полезен новичкам попрактиковаться с версткой👍
@ДимаИванов-и4ь Жыл бұрын
Спасибо за урок. Объяснение очень доходчиво.
@korobkaneskvika2740 Жыл бұрын
Спасибо за видеоуроки. Но мне лично очень хотелось бы, чтобы не тратилось столько времени урока на нейминг. Теряю нить на таких паузах, когда по нескольку раз переписываем одно и то же. Спасибо еще раз
@dyadyavitya467 Жыл бұрын
Ты топ чел. Спасибо за гайды)))) Делал свой пэт после твоего Snekers, что бы закрепить и там как раз сортировка. Ты очень помог))) После пэта и ещё одной объясняшки на юдэми сделаю и Реакт пиццу)))
@dvromin11 ай бұрын
Я сделал сортировку немного проще: В Home добавил два юзстейта // Сортировка по возрастанию/убыванию const [categoryDirection, setCategoryDirection] = useState("asc") const [categoryClicked, setCategoryClicked] = useState(true) и функцию const changeDirection = () => { setCategoryClicked(prev => !prev) setCategoryDirection(categoryClicked ? "desc" : "asc") } в useEffect поменял order const order = categoryDirection Далее перекинул changeDirection в Sort; В Sort иконку со стрелкой вверх обернул в кнопку и повесил на неё обработчик onClick={changeDirection}
@алексполян-я7к2 жыл бұрын
Денис спасибо за подробное объяснение этого сложного момента, впервые увидел как делается фильтрация во взаимодействии с бекендом. Единственное что мне кажется не хватает, добавить функции, закрытие попап, при клике вне области. Но это не проблема, в первой версии Pizza ты это реализовал, поэтому от туда взял инфу и прикрутил и все стало круто. Жду дальше от тебя следующих уроков. Спасибо!!!
@ArchakovBlog2 жыл бұрын
В этом курсе я объясняю как и это сделать тоже
@Евгений-х7п9с2 жыл бұрын
Отличная сортировка, тож долго не смог разобраться, но получилось. Спасибо
@matveyd72722 жыл бұрын
не добавил в массив зависимостей для юзэффекта sortType и не мог понять, почему при изменении типа сортировки не происходит ререндер. Вообще сложный урок получился. Больше всего недопониманий возникло не с прокидыванием пропсов даже, а с прописыванием в фетче всех этих зависимостей для корректной сортировки. Понимаю, что сам бы до такого не додумался (но с моим опытом в 3 месяца я, думаю, это и нормально). Наверное пересмотрю этот урок на свежую голову - может что понятнее станет
@SpeakeR2319 Жыл бұрын
почитай про промисы и fetch API и всё будет понятнее
Угарнул отдуши когда он сказал что я такой фингней занимаюсь ты не понимаешь , а я вслух сказал что я понимаю по этому я делаю чутка по другому. Классный курс спасибо!
@EvilYou5 ай бұрын
1:00:42 Причина в другом. Строки в JavaScript основаны на Юникоде. И код символа Я больше, чем код символа А.
@EugeneKh. Жыл бұрын
Дэнис, спасибо за твои уроки. Благодаря им очень вырос в проф плане. Вопрос: зачем нам при фильтрации делать отедльный запрос на бэк, разве не логично будет фильтровать на месте массив, который нам прилетел после запроса по категории? Впечатление, что делается двойная работа.
@crn05 Жыл бұрын
логично конечно. В курсе react sneakers он так и делает. скорее всего сделано, чтобы показать дополнительные возможности
@isaamerkhanov9971 Жыл бұрын
Насколько я знаю, в проектах фронт занимается только отображением. На фронт же не приходят 10-20 штук объектов, их может быть 1000 и больше. А фильтрация на sql в бд на сервере происходит быстрее. Фронт не загружают лишней логикой
@hotmitrofan7 ай бұрын
для экономии ресурсов, чтобы подгружалось только нужное. Это заметно на больших проектах, где товаров много. Мне так бэкендер обьяснял.
@matveyd72722 жыл бұрын
↓ ↑ кому-то точно пригодится)
@ricardo-user Жыл бұрын
@ArchakovBlog a нельзя ли производить сортировку первоначального массива, чтобы каждый раз не дергать бекенд? или это в целом нормальная практика фильтровать через запросы? можно же получая общий массив делать фильтрацию и отображать только нужно из уже полученных локальных данных. Или все же вариант через бекенд эффективенее\менее затратный по ресурсам\другое?
@ArchakovBlog Жыл бұрын
Это самая верная практика - запрашивать через бэк. Пицц может быть больше чем 10,30,50 и могут меняться. Из-за этого, всегда нужно актуализировать инфу у бэка
@ricardo-user Жыл бұрын
@@ArchakovBlog Понял, спасибо
@vladimirplyukhin52342 жыл бұрын
Спасибо большое за урок!
@iamboikodmytro2 ай бұрын
Не понятно, зачем так заморачиваться над ASC и DESC. Ведь у нас слева от сортировки есть иконка стрелки, которая и показывает в какую сторону происходит сортировка. Я просто создал для неё отдельный стейт, и при нажатии смену стейта. И когда она у меня 'true' то 'DESC', когда 'false' то 'ASC'. Так же в SCSS добавил при нажатии её поворот сверху вниз, и обратно. И направление движения сортировки показывает, миниатюрно, и нет лишних категорий)
@ProgrammerFlunt Жыл бұрын
Очень круто, спасибо!
@Курманский2 жыл бұрын
Спасибо продолжай в том же духи а с нас ❤
@sernowodsk5963 Жыл бұрын
59:44 - я чего то не понимаю или тут можно было сделать вот так, и упростить себе жизнь : const list = [ { name: 'популярности (DESC)', sortProperty: 'rating&order=desc' }, { name: 'популярности (ASC)', sortProperty: 'rating' }, { name: 'цене (DESC)', sortProperty: 'price&order=desc' }, { name: 'цене (ASC)', sortProperty: 'price' }, { name: 'алфавиту (DESC)', sortProperty: 'title&order=desc' }, { name: 'алфавиту (ASC)', sortProperty: 'title' }, ]; не добавляя никаких минусов и не убирая их потом
@alposha2 ай бұрын
да получается
@alposha2 ай бұрын
но тогда при добавлении новых сортировок нужно будет это учитывать
@rickbacker1Ай бұрын
идея интересная, но немного костыльная
@JavaScriptcher2 жыл бұрын
Охренительно как это работает , но это работает!!!
@skip.27532 жыл бұрын
Можно просто расширить объекты массива параметров сортировки полем order со значением "asc" или "desc": { name: "popularity ↓", prop: "rating", order: "desc" }. А уже в теле запроса в конец добавить обращение к этому полю: &order=${sortParam.order}.
@x-bit51932 жыл бұрын
А условие для класса active проверять по name
@enzelad20172 жыл бұрын
@Archakov Blog Костыль с order, мне кажется. Я сделал просто дополнительный стейт const [sortingOrder, setSortingOrder] = useState(false). Там в дизайне есть стрелочка. При клике на неё изменяю стейт и переотправляю запрос. Если sortingOrder === true, тогда по возрастанию, в обратном случае по убыванию. Плюс в зависимости от стейта сделал класса для стрелочки. Если по убыванию (false) то переворачиваю её через css-класс на 180 градусов (смотрит вниз), в обратном случае возвращаю к обычному состоянию. В итоге никаких вырезаний минуса и дополнительных типов сортировки в попапе (не знаю, может в следующих частях ты их уберёшь).
@ДмитрийСитников-ш2х2 жыл бұрын
Прекрасная идея!
@avkuzovlev2 жыл бұрын
Тоже примерно так сделал, и немного увеличил стрелочку onChangeOrder()} transform={sortOrder ? 'rotate(-180 0 0)' : ''} width='15' height='10'
@РамильФатуллаев-о9ц7 ай бұрын
Если без контекста, то можно просто в поопсах передать колбек, который у чилдренов будет вызывать в родителя изменение стейта. А ну тут так и реализовали)
@aidarbakytbekov82552 жыл бұрын
я бы включил в курс ещё react query, useeffect уже почти редко кто использует в запросах
@dmaberlin Жыл бұрын
КРУТОЙ УРОК!
@constantindanilov2362 жыл бұрын
Поправка: ascending, asc - ассендинг(возрастание); descending, desc - диссендинг(убывание), а не иначе!
@shokhrookhr38502 жыл бұрын
Курс супер!
@diggerdog00111 ай бұрын
Очень сложный урок, конечно. Я лично половину не понял. Теряюсь в этих зависимостях, пропсах, куда что передается. Как это запоминать?
@АлександрИванькович-т9ф9 ай бұрын
Попробуй на листке бумаги нарисовать блок схему со стрелками что куда идёт и зачем так будет проще понять
@ThomasBlack4522 ай бұрын
Да, мозгу нужно время, чтобы понять это. Если за один заход не получается - это нормально. И да, я сделал скриншот (вместо листка бумаги) и тоже рисовал стрелочки и подписывал что куда переходит.
@ПожилойБилибоба2 ай бұрын
Это не нужно запоминать, это нужно понимать
@МаксимЛяпин-ц2ю8 ай бұрын
Я не совсем понял момент, где мы передаем в качестве пропсов функции изменения состояния у категории и сорта. В следующем видео , функция изменения поиска передается в качестве пропса без создания стрелочной функции, в категориях и сорте получается так нельзя сделать?
@Калабарака Жыл бұрын
арчаков , ты хорош!
@alexandr81512 жыл бұрын
уроки набирают сложность, круто!
@darkkobra1485 Жыл бұрын
как обстоят дела? научился к реакту?
@alexandr8151 Жыл бұрын
@@darkkobra1485 неплохо) смотря что подразумевать под научился)
@darkkobra1485 Жыл бұрын
@@alexandr8151 Уже работаешь?
@alexandr8151 Жыл бұрын
@@darkkobra1485 и я до этого работал
@Kirill0and0Roma2 жыл бұрын
Зачем столько танцев с бубном с order если можно просто по клику на стрелочку рядом с сортировкой менять в запросе desc на asc?
@alexfolomeev6262 Жыл бұрын
Спасибо огромное
@Виталий-н5у7о Жыл бұрын
1:02:10 здесь для sortType -> useState я вытащил из файла Sort.jsx экспортом список list (где лежат варианты сортировок), и прикрутил в sortType -> useState первый элемент list[0], тем самым берем сразу данные оттуда, а не указываем явно 1. Файл Home.jsx import Sort, { list } from "../components/Sort"; ... const [sortType, setSortType] = useState(list[0]); 2. Файл Sort.jsx Вставляем до функции: export const list = [ { name: "популярности DESC", sortProperty: "rating" }, { name: "популярности ASC", sortProperty: "-rating" }, { name: "цене DESC", sortProperty: "price" }, { name: "цене ASC", sortProperty: "-price" }, { name: "алфавиту DESC", sortProperty: "title" }, { name: "алфавиту ASC", sortProperty: "-title" }, ]; Насколько данный подход верный?
@funny_channelll2 жыл бұрын
ASC ,DESC можно просто сделать проверку ,если sortPropety === title , делаем ASC ,в других случаях DESC.
@alluresport35522 жыл бұрын
Кто немного недопонял, объясню, по большому счету нам нужно описать логику которая была в компоненте "Categories", в компоненту которая выше и всё, ну а дальше там вообще изи
@mariamarsenyan5072 Жыл бұрын
Помогите, пожалуйста, как исправить ошибку ? Cannot read properties of undefined (reading “includes и replace )?
@MegaDimonych Жыл бұрын
const sortBy = sortId.sortProperty const orderBy = sortId.name.includes('DESC') ? 'desc' : 'asc'; сделал так, помогло
@mariamarsenyan5072 Жыл бұрын
@@MegaDimonych большое спасибо ))))
@daria22692 жыл бұрын
3 раза посмотрела😀
@alexeyfilippov422 жыл бұрын
а не лучше копировать стейт в новую переменную и уже новый массив сортировать/фильтровать?
@degustat_or Жыл бұрын
Как отображать то колличкство скелетонов, которое будет в каждой категории? Сейчас получается, например, что во до загрузки отображается 10 скелетонов, но потом появляется 3 пиццы. Или это нормальная практика, и так делают и в проде?
@freeksons Жыл бұрын
так все делают, ты не узнаешь сколько у тебя пиц пока не получишь их с серва, тоесть тогда уже и загрузка будет закончена
@mameddzhafarov62862 жыл бұрын
Контент Пушка Все понятно
@МихаилСабуров-ы1в Жыл бұрын
Почему не даешь ссылку на свой сервис? Он ведь круче mockapi
@YulVilaya Жыл бұрын
вы знаете , я не поняла все равно зачем мы удалили минус (replace('-', '') разве он нам мешает в запросах?
@abbze8272 Жыл бұрын
Запрос не работает с минусом. Некорректно составлен. Нормальный бэкэнд не допустит лишних символов в квери запросе.
@OnlyLuck10002 жыл бұрын
Нормальные люди: вникают в контекст Я: как 2ой человечек пойдет в дом который летает?)
@evgeniykhelman36942 ай бұрын
у тебя очень годные уроки но я чет не понял мувов с минусом, можно же было в замен него просто "&_order=desc" подстаить и все😆
@iamboikodmytro2 ай бұрын
А с ASC как быть?😄
@JasonJ333-zz4sj4 ай бұрын
7:22 подскажите шо за супер расширение для инглиша
@nickdunne12352 жыл бұрын
Если с сайт с мокапи или других фейеовым сервером загрузить на обычный хостинг, то работать не будет, верно?
@thebeastd4158 Жыл бұрын
возникла проблема - у меня к примеру категорий больше десяти, и получается когда я фильтрую категорию 1 то в неё попадают все категории которые содержат 1, то есть 10,11,12 итд. начиная с двухзначных категорий такого уже нет, всё работает нормально. встал на 2 дня, ощущаю себя полным тупицей))
@thebeastd4158 Жыл бұрын
короче я понял, мокапи весь кривой, там ничего нормально не работает что связанно запросами на него, ну и ладно, успокоился что не во мне проблема хотя бы))
@7yon4822 жыл бұрын
Тут я молил богов о редаксе
@ArchakovBlog2 жыл бұрын
в след уроках уже будет на редаксе
@7yon4822 жыл бұрын
@@ArchakovBlog Уже дошёл, потрясный контент!
@shokhrookhr38502 жыл бұрын
А когда выйдет 10-урок?)
@liraybe74213 ай бұрын
59:36 шо это за звук был?)
@helplrewerse29252 жыл бұрын
Кароче почему-то при клике на некоторые категории ответ с сервера приходит, а пиццы не рендерятся. В чём прикол?
@АлексейКобылянский-у7д8 ай бұрын
Дружище! Исправь баг с картинками в json. Картинки не отображаются
@gom-jabbar6 ай бұрын
баг происходит потому что dodopizza поменяла ссылку на картинки которые мы используем , я поменял ссылки в бд и теперь у меня даже быстрее грузится
@АлексейКобылянский-у7д5 ай бұрын
@@gom-jabbar А на что поменял ссылку? Какой теперь путь?
@РенатаАндросова5 ай бұрын
@@АлексейКобылянский-у7д я просто себе картинки сохранила и ссылки поменяла в файле json
@АлексейКобылянский-у7д4 ай бұрын
@@РенатаАндросова А как? Если картинки не грузятся
@РенатаАндросова4 ай бұрын
@@АлексейКобылянский-у7д с сайта додо пиццы сохранила
@georgegrinding1793 Жыл бұрын
Если Home при маунте получает абсолютно все пиццы, зачем делать другие запросы при изменении категории, а не фильтровать уже полученный массив?!
@andreityryshkin37842 жыл бұрын
Всем привет, Лайкай если заюзал треугольник для сортировки по возрастанию и убыванию
@borodulin_sergey2 жыл бұрын
Привет, есть вопрос. Меня учили всю логику описывать в файле App.js. Как правильнее, и как чаще делают - в каждом компоненте именно его логика, или вся логика в одном компоненте ?
@yockymai2 жыл бұрын
Ясен хуй что в каждом компоненте своя логика, в чем тогда смысл декомпозиции? в данном видеоуроке логика в App.js чисто для примера, чтобы сократить время
@webbomj2 жыл бұрын
DAL, BLL, UI. UI - чисто визуальная + свой локальный стейт может иметь, только визуально. BLL (бизнес логика) редакс с thunk/saga. DAL - Это по сути какая то логика не связанная с бизнес и UI. Например Запрос сделать на бек за данными. В целом MV* (MVC, MVP) понимание этого решит твой вопрос на всегда. Например в путь самурая 1.0 на ютубе на 51час частично из тебя сделает программиста. а не вот это вот всё.
@mex53412 жыл бұрын
@@webbomj ужасный совет про самурая ) его курс два года назад отбил желание фронтом заниматься , не структурированный материал с плохой лексикой
@ИгорьКапасин2 жыл бұрын
не знаю как тебя назвать, со своим неймингом напрочь запутал
@crypto4elik Жыл бұрын
норм тема
@nargizgasanova6222 Жыл бұрын
а как называется это программа для редактирования экрана которую вы используете?
@aserezhnikov4 ай бұрын
Скриншотер видимо
@СергейЦарелунг2 жыл бұрын
здравствуйте! Огромное спасибо за Ваш труд. Желаю Вам творческих успехов. Хотел бы задать вопрос, а можно ли использовать такой вариант при решении задачи с сортировкой по убыванию или возрастанию, а именно добавить в массив категорий sortOrder, например так: const list = [ {name:"популярности (возрастание)", sortProperty:'rating', sortOrder: 'asc'}, {name:"цене (возрастание)", sortProperty:'price', sortOrder: 'asc'}, {name:"алфавиту (возрастание)", sortProperty:'title', sortOrder :'asc'}, {name:"популярности (убывание)", sortProperty:'rating', sortOrder :'desc'}, {name:"цене (убывание)", sortProperty:'price', sortOrder: 'desc'}, {name:"алфавиту (убывание)", sortProperty:'title', sortOrder: 'desc'} ]; Тогда можно запрос на beckend написать так: fetch(`633e6fda83f50e9bab0ba8a.mockapi.io/items?${activeCategory > 0 ? `category=${activeCategory}` : ''}&sortBy=${sort.sortProperty}&order=${sort.sortOrder}`) У меня вроде работает.
@dontexist70393 ай бұрын
Ребят, подскажите, пожалуйста, что если category=" + categoryId (32:22 время видео), mockAPI выдает как not found, а не пустой массив. У меня проект от этого крашится
@ThomasBlack4522 ай бұрын
У меня тоже крашится. Как временное решение я поставил в useState(1) вместо 0. Чтобы он отображал пиццы сразу из первой категории. Ты наверн разобрался уже, но вдруг кому пригодится. Что там будет дальше в видео - хз. Может, в итоге всё равно останется проблема.
@dontexist70392 ай бұрын
@@ThomasBlack452 Да, решил. Добавь всем пиццам на mockAPI категорию 0 и все будет гуд
@iamboikodmytro2 ай бұрын
@@dontexist7039 Зачем им нулевая категория? Там же можно просто всю ссылку через интерполяция написать, и ничего крашится не будет
@Damosha065 күн бұрын
@@iamboikodmytro Можешь код скинуть?
@boxinghighlights56902 жыл бұрын
Спасибо за видео, лучший контент Ютуба. Немного усложнил задачу, добавив еще вторую сортировку по бренду. Однако сортировка по бренду происходит только когда открыта категория "Все товары". При выборе других категорий сортировка не происходит. Не могу понять в чем причина бага. В консоли ошибок нет. Возможно нужно дополнительную проверку делать или еще что я упустил?
@boxinghighlights56902 жыл бұрын
Посмотрел десятый урок и понял что скорее всего проблема в mockAPI. При добавлении третьего параметра, будь-то сортировка, фильтрация или поиск - mockAPI отрабатывает некорректно.
@Marylovesautumn9 ай бұрын
ТАм добавляется лишний пробел при переключении.
@Zubairavvv2 жыл бұрын
Что за программа для рисования?
@belukee2 жыл бұрын
сортировка по алфавиту не работает у меня. из за чего это может быть ?
@Никита-ф3о9и2 жыл бұрын
Ух последнии 25 минут запутанные получились 😅
@sherzodbekmakhmudov9332 Жыл бұрын
Видео топ, всё круто, хотел спросить если кто то знает скажите что за программа где он выбирает что то и делает что хочет в этом снимке и, в 30:20 в этом месте это программа, если кто то знает название скажите пожалуйста
@pussydussy3693 Жыл бұрын
ScreenShoter
@Galaxzier Жыл бұрын
51:30 можно заменить на ${catogoryId || '*'}
@БексултанЭрмеков2 жыл бұрын
Доходчиво объясняет, красава
@СтройКонсалт Жыл бұрын
14:50 голова через стену дома торчит, пофиксить бы....
@СергейСомов-м8ы Жыл бұрын
я вообще слабо понял что происходит. когда мы писали юзстейты, то все было по порядку. сейчас вообще хаотично всё меняется и объяснения лично мне вообще не понятны. может потому что я тупой, может потому что постоянно меняются контексты и все эти контексты нужно держать в уме и пытаться понять что там происходит. "так это мы поменяют тут, поменяем здесь, потому что мы тут делали это" и прыжки из компонента в компонент, стейты, функции. понял объяснение только того, что знал до этого лучше бы было все с самого начала сделать по другому, а не переделывать.
@CyberGenius7772 жыл бұрын
26:11 В onClickCategory лучше передавать ссылку на функцию и создать ее выше и там делать все манипуляции
@ArchakovBlog2 жыл бұрын
Почему?
@CyberGenius7772 жыл бұрын
@@ArchakovBlog Я ведь писал в 6 уроке. В этом проекте ничего страшного. На больших проектах это производительность
@dr_morpho2 жыл бұрын
Согласен, функция вызывается в дочернем компоненте по клику, а данные записываются в родительский стейт, в случае если бы тоглер был описан в родительском компоненте то и вызов бы происходил тоже в нем.
@Ohhhnailsss9 ай бұрын
курс 100из10
@артёмкоролёв-ю6е9 ай бұрын
Ну ,есть куда расти. Материал лучше готовить, не переименовывать переменные по 120 раз, :) Вам все понятно из этого урока?
@alexsatm056 ай бұрын
👍👍👍👍👍
@nazarii0272 жыл бұрын
Home.jsx:24 Uncaught TypeError: Cannot read properties of undefined (reading 'replace')
@НЕфартовый-с8б Жыл бұрын
Как решил?
@grsd2017 Жыл бұрын
А как получать данные с Django Api ? Ссылка с fetch-запроса ведь другая будет. И как тогда фильтровать товары ?
@Alias_s Жыл бұрын
Может нужно посмотреть доку какие запросы Django Api принимает?
@jamolov_xoja Жыл бұрын
19:00 Keymltn
@nizom3332 жыл бұрын
top
@clown21952 жыл бұрын
дядь почему не вебшторм?))
@nikolaydemidovez2 жыл бұрын
Он вроде платный, а 90% зрителей не захотят его покупать, и им неудобно будет ориентироваться в другой IDE
@clown21952 жыл бұрын
@@nikolaydemidovez ладно.
@kenanhaciyev3759 Жыл бұрын
Он летает он левитирует🤣
@jamolov_xoja Жыл бұрын
54:00 Keymltn
@JdIm6fhjLgdWRhn2 жыл бұрын
59:00
@N1K0_official2 жыл бұрын
я просто создал еще стейт который по возрастанию и убыванию делает , сделал новый див после popup и вроде так легче воспринимать
@MrCritically2 жыл бұрын
9 Урок, а Typescript все нет (
@ArchakovBlog2 жыл бұрын
TS с 20 урока начинается
@shokhrookhr38502 жыл бұрын
@@ArchakovBlog А когда выйдет 10 - урок?)
@MrCritically2 жыл бұрын
@@ArchakovBlog Спасибо за информацию.
@nmteg2 жыл бұрын
Пожалуйста, не занимайся бесконечным переименованием всевозможных наименований, ты не представляешь, как это мешает воспринимать информацию и сбивает, особенно, когда идет уже не первый-второй урок за день
@ArchakovBlog2 жыл бұрын
какие-то вещи приходится переименовывать, чтобы они более или менее соответствовали новой логике. в любом случае, приведи пример где делаю "бесконечные переименования"
@harrisonwinston28502 жыл бұрын
@@ArchakovBlog а почему фильтрация по запросу, если все данные о пиццах у нас есть? Не лучше на фронте это делать? Я не знаю, хотелось бы узнать, как лучше.
@NIReeMK2 жыл бұрын
@@harrisonwinston2850 потому что из-за пагинации выводятся не все товары и у нас изначально нет информации о всех товарах
@PaulAtreides-d8z Жыл бұрын
чувак через какие же ты костыли это всё делаешь!! Зачем так усложнять и запутывать, когда всё это делается через Redux?! Что за работа ради работы?!