ap1726 / practicum_react Goto Github PK
View Code? Open in Web Editor NEWyandex practicum react
yandex practicum react
Можно лучше: Вычисления и преобразование данных (на стороне компонента), полученных из селектора (хук useSelector), можно делать в селекторе, используя библиотеку reselect. Данная библиотека нужна для создания мемоизированных, пригодных для компоновки селекторных функций. Примеры взаимодействия reselect с useSelector можно посмотреть здесь: https://react-redux.js.org/api/hooks#useselector-examples
Originally posted by @vadmas in #5 (comment)
Здравствуйте. (**Нужно развернуть общий комментарий ↓**)
Посмотрите на гитхабе все комментарии к коду (нужно прокрутить вниз страницу там)
Работа проделана огромная:
useSelector
и useDispatch
socketMiddleware
но есть некоторые недочеты:
Можно лучше
then
, чтобы пользователь мог следующий заказ сделать, не удаляя старые ингредиентыОформить заказ
, пока пользователь не добавил булку в заказ.Originally posted by @gennady-bars in #14 (review)
Originally posted by @gennady-bars in #11 (review)
**Можно лучше**
Если вы добавили localStorage и cookie то их после каждого теста нужно удалять
afterEach(function () {
cy.clearLocalStorage();
cy.clearCookies();
})
Originally posted by @andryxxa93 in #16 (comment)
**Можно лучше**
В проекте уже есть модалка, ошибку можно показывать в ней.
Originally posted by @andryxxa93 in #4 (comment)
**Можно лучше**
Удобно когда для одного теста используется один expect. Так если тест упадёт будет проще определить из-за чего именно.
Originally posted by @andryxxa93 in #16 (comment)
Можно лучше
Не совсем понимаю зачем делать сложность N^2
Попробуйте придумать другое решение, если это возможно
Originally posted by @VovaGayduk42 in #8 (comment)
**Можно лучше**
Можно сделать универсальный кастомный хук для контроля любого количества инпутов в любых формах:
export function useForm(inputValues={}) {
const [values, setValues] = useState(inputValues);
const handleChange = (event) => {
const {value, name} = event.target;
setValues({...values, [name]: value});
};
return {values, handleChange, setValues};
}
Этот код помещают в отдельный файл useForm.js
в папке hooks
и импортируют функцию туда, где нужно контролировать инпуты
И Вам не нужно будет теперь вручную создавать функции обработки инпутов и т д. Все будет в одной строчке кода:
const {values, handleChange, setValues} = useForm({});
Originally posted by @gennady-bars in #11 (comment)
Можно лучше
Необходимо так же подсвечивать активный таб в хедере
Originally posted by @VovaGayduk42 in #8 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.