Наилучшая практика для обновления зависимого состояния в разных ветвях дерева состояний? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть это состояние:

  • пользователи: [{money: 1}]
  • продукты: [{id: 'x', цена: 5}, {id:'y', цена: 1}]
  • купленоПродукты: []

Я хочу добавить действие {type: "buyProduct", productId: "x"}, которое добавит новый продукт и вычтет деньги у пользователя,Но у меня есть 3 разных редуктора для каждой ветви (пользователи / продукты / купленные продукты).

Допустим, теперь я добавляю новый продукт "х", который стоит 5, он не должен удалять деньги и не должен добавлятьпродукт также.Обратите внимание, что 5 из отрасли продуктов.Таким образом, пользователи и приобретенные продукты не могут определить цену по самой акции, поскольку она содержит только идентификатор, а не цену.

Мой реальный пример немного сложнее, но похож по своей природе.

Решения:

  • A) Одно из решений состоит в том, чтобы иметь корневой редуктор для всех ветвей, но он не выглядит правильным.Любые другие решения?
  • B) Есть еще одно действие "requestPurchase", и это вычислит, могу ли я купить продукт или нет.Проблема заключается в том, что могут возникнуть проблемы с параллелизмом, если одновременно есть 2 requestPurchase, поскольку это позволит обоим действиям проходить, даже если денег недостаточно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...