31Vector31 / react-training

Hooks, Axios, HOC, Redux, Context, Reselect, Router.
0 stars 0 forks source link

review picture-gallery #7

Closed shevchuknine closed 2 years ago

shevchuknine commented 2 years ago

при пустом поле ввода картинки должны все-равно загружаться useCallback без зависимостей не имеет смысла search - просто форма, которая передает родительскому компоненту введенное значение (с учетом debounce) для выполнения запроса https://github.com/31Vector31/react-training/blob/cf22d698c2c0ea9d7bfa22db1c92ad4cfa8675ac/src/PictureGallery/Search.js#L21 запросы к апи всегда описываются отдельно (отдельный файл, например) и в компонентах только вызываются https://github.com/31Vector31/react-training/blob/cf22d698c2c0ea9d7bfa22db1c92ad4cfa8675ac/src/PictureGallery/Search.js#L10 при каждом ререндере эта пременная создается новая, что значит что старое значение теряется. для реализации механизма, что ты задумал, нужен ибо useRef, либо переменная за пределами компонента https://github.com/31Vector31/react-training/blob/cf22d698c2c0ea9d7bfa22db1c92ad4cfa8675ac/src/PictureGallery/Search.js#L7 это состояние для debounce тебе не нужно https://github.com/31Vector31/react-training/blob/cf22d698c2c0ea9d7bfa22db1c92ad4cfa8675ac/src/PictureGallery/PictureGallery.js#L9 в компоненте Search страничка всегда сбрасывается на начальную, потому имеет смысл просто передавать туда колбек, который это делает и вызывать его там

shevchuknine commented 2 years ago

при первом открытии приложения картинки должны загружаться (без учета debounce, отдельным вызовом) необходимо выровнять по высоте/ширине все картинки в превью, например, сделать их квадратными при открытии картинки должна отображаться подложка (например, черная, чтобы понимать размеры картинки с прозрачным фоном) _ https://github.com/31Vector31/react-training/blob/e088db5859078f4b4fd224d2e6fec82646458ff2/src/PictureGallery/PictureGallery.js#L13 в случае загрузки первой страницы, запрос улетит без page, после клика на "загрузить еще" запрос отправится со значеним page = 1, в результате мы получим тот же набор картинок. page должен отправляться всегда в числовом формате

shevchuknine commented 2 years ago

https://github.com/31Vector31/react-training/blob/29600e0395985ce3b8ce371d5491aa65d9585730/src/PictureGallery/PictureGallery.js#L12 когда находишься на странице > 1 и вводишь что-то в search, инициируется сразу два запроса. первый cancel-ится, второй выполняется. первый вообще не должен вызываться