Моего вопроса довольно трудно объяснить, я попытаюсь объяснить кратко:сделки слишком много государственных
Я пытаюсь воспроизвести таймер, как этот таймер на этом сайте: https://cstimer.net/
Проблемы I есть это: мне приходится иметь дело со многим «государством» и много событий:
типа события, у меня есть:
Chrono не запускается -> жмет «Space» -> цвет становится оранжевым - > после 500ms -> chrono становится зеленым -> Я освобождаю пространство -> chrono s tart -> Я нажимаю пробел -> остановка хроном
Я бы написал код, который делает это. Проблема в том, что мой код становится очень сложным из-за слишком большого количества «если».
if (!chronoIsStarted and SpaceIsPressed) { chrono.color = orange }
if (lastKeyDown - lastKeyUp >= 500 and !chronoIsStarted) { chrono.color = green }
if (keyup == space and lastKeyDown - lastKeyUp >= 500) { chono.start(); }
...
...
Это ужасно, потому что я должен иметь переменную флагов, чтобы предотвратить остановку хронографа сразу после запуска.
Я ищу способ правильно управлять этим.
Я слышал о конечном состоянии машины, я не знаю, является ли это хорошим решением.
В настоящее время я использую response/redux и jquery для событий, но я могу добавить любые библиотеки, которые могут вам помочь.
Спасибо Вам
Вы должны выбрать цвет в своих редукторах. Вы также не должны использовать React и jQuery вместе, особенно для обработки событий. Если это не имеет смысла, я обязательно прочитаю документы React и Redux, прежде чем продолжить. – pfkurtz