Skip to content

Commit

Permalink
Удаляет пробел, разбивает абзацы
Browse files Browse the repository at this point in the history
  • Loading branch information
TatianaFokina authored Apr 17, 2024
1 parent 1ed8103 commit e070145
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion recipes/expressive-react-maze/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,9 @@ export const Maze = () => {
Несмотря на то, что всё работает правильно, код компонента далёк от совершенства. Слишком много логики содержится в одном файле компонента. Создание подобных компонентов — это типичная ошибка при знакомстве с React. Проблема в том, что мы не нашли удобного способа разделить состояние между всеми компонентами и просто сложили всё в одну кучу (точнее, в один лабиринт).

Даже когда кажется, что всё работает стабильно, стоит потратить немного времени на тестирование UX (user experience, пользовательское взаимодействие). Текущее решение содержит один неучтённый нюанс: после нажатия на кнопку «Апорт!» пользователь может добавить несколько стенок в лабиринте до того, как начнётся анимация. При этом у собачки появляются суперспособности проходить сквозь стены. Для устранения этой недокументированной возможности потребуется запретить обработку нажатий на кнопки добавления стен лабиринта как только была нажата кнопка «Апорт!» и до момента окончания анимации. Для этого можно добавить ещё одну переменную-состояние, чтобы знать, когда можно, а когда нельзя строить стены.

Другое возможное решение – переделать анимацию так, чтобы собачка учитывала актуальное состояние стен. Для этого, например, можно рассчитывать анимацию не сразу после нажатия кнопки, а постепенно, учитывая только следующую стенку.
Попробуйте реализовать это исправление самостоятельно.

Попробуйте реализовать это исправление самостоятельно.

В следующей статье разберёмся как разделить состояние между компонентами.

0 comments on commit e070145

Please sign in to comment.