31Vector31 / react-training

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

review "reviews" #3

Closed shevchuknine closed 2 years ago

shevchuknine commented 2 years ago

на фроме ввода должны присутствовать 5 звезд, клик по 1-й означает оценку 1, по 2-й - 2 и т.д. соблюдай принцип имутабельности даных и распыление объекта для доступа к свойствам https://github.com/31Vector31/react-training/blob/17e54210e5b08b500bad03f75c294da7333206df/src/Reviews/Reviews.js#L39 дублирование вычисления _ при отсутствии отзывов процент отображается некорректно

shevchuknine commented 2 years ago

предусмотри более аккуратное позиционирование элементов и отображение процентов. этот и некоторые дальнейшие проекты будут формировать твое портфолио селектор .rating:not(:checked) излишний, т.к. у тебя элемент с классом rating всегда не выбран. нужно использовать просто .rating. https://github.com/31Vector31/react-training/blob/6187382c2056ade00e2f0b7b49c0e7a65d2e629d/src/Reviews/Form.module.css#L35-L42 эти стили не используются состояние checked у поля ввода хранится в DOM и только отображается на state, так не должно быть. все состояние полей ввода должно регулироваться с помощью React, в DOM никакого состояния оставаться не должно. необходимость в функциональности reset отпадет сама собой при подобной реализации input-ы и label лучше рендерить из массива и передавать отдельно каждому onClick. такое решение приоритетенее, чем ловить событие на всплытии и обрабатывать dom элемент для получения value _

shevchuknine commented 2 years ago

image красная линия - центр, звезды съехали. у звезд float: right, это устаревшее решение, нужно заменить. звезды не по-центру относительно своего контейнера (label), тоже надо пофиксить https://github.com/31Vector31/react-training/blob/10c1a47e9230730f5433341d3f20b7852256ba66/src/Reviews/Form.js#L30 value не нужен в этом input-е, достаточно checked и onChange https://github.com/31Vector31/react-training/blob/10c1a47e9230730f5433341d3f20b7852256ba66/src/Reviews/Statistics.js#L11 3 раза обращаешься в одно и то же свойство