Я создаю приложение с флюсом и React, который является своего рода в игре ... и это приложение имеет 3 магазина:Flux сохраняет изменения других магазинов
GameStore -> содержит статус игры, как закончил, как много раз игрок выиграл, и этот материал
CounterStore -> Это счетный магазин, который запускается автоматически каждые 1 секунду, а компонент счетчика обновляется сам.
BlockStore -> это связано с игровыми компонентами, которые являются своего рода блоками, на которых пользователь может взаимодействовать.
Итак, всякий раз, когда я нажимаю на блок, я запускаю действие и получаю его в BlockStore. BlockStore делает какую-то магию и определяет, был ли щелчок на блоке правильным, если он был, он обновляет GameStore (сколько раз пользователь нажимал на правильный блок) и обновляет CounterStore (что увеличивает таймер для пользователя).
Кроме того, всякий раз, когда CounterStore получает значение 0, он также изменяет GameStore, чтобы установить, что пользователь потерял.
Это абсолютно неправильно, в моих магазинах они каким-то образом связаны ... Каждое действие меняет почти все магазины, но некоторые действия зависят от результата магазина, чтобы изменить другие магазины (это путает: S).
Я хочу получить мнение, правильно ли я делаю это, может быть, я должен поместить все в один магазин (что будет сложно поддерживать) или удалить некоторые магазины и обработать некоторые вещи в качестве компонента (например, счетчик).
Я потерян здесь.
Спасибо Alex за ваш ответ, на самом деле мой GameStore не содержит информации для каждого блока. Он содержит только информацию, связанную с игрой, например, если она закончена, или сколько раз пользователь выигрывал и тому подобное. Проблема в том, что я должен изменить GameStore в зависимости от данных, которые анализирует BlockStore ... если я щелкнул в правильном блоке, GameStore также должен измениться, чтобы обновить его состояние о том, сколько раз я нажал в Правильный блок –
Кроме того, BlockStore также меняет CounterStore ... Если я нажимаю на правильный блок, я увеличиваю счетчик, иначе я его уменьшу. Я действительно не знаю, подходит ли это приложение, которое хорошо работает с Flux:/ –
@MauricioSoares. Можно отправить действия с BlockStore для обновления значений в CounterStore/GameStore.Я все же предлагаю комбинировать CounterStore и GameStore в одном магазине. Если вы решите пойти по пути размещения всего в одном магазине, я бы выделил хранилище для всех данных и выделил любые методы/функции, которые мутируют данные на отдельные контроллеры. – Alex