В моем приложении response native / redux я хотел бы отправить несколько действий.
Я обрабатываю список элементов в своем приложении. С одним редуктором я поддерживаю коллекции как словарь {CollectionId: [ElementId1, ElementId2, ElementId3]. А в другом редукторе я поддерживаю словарь Elements {ElementId: {ElementName, ElementData, ...}}. Таким образом данные будут максимально нормализованы.
Теперь, если я хочу удалить все элементы из определенного collectionId, как мне отправить следующие два действия:
batch(() => {
dispatch(deleteCollection(collectionId)) // removes the collection from the first reducer dictionary
dispatch(deleteElements(Array<ElementIds>)) // removes all Elements
}),
Однако я не знаю заранее массив, у меня есть доступ только к collectionId. Это похоже на то, что первая отправка должна возвращать идентификаторы элементов, чтобы я знал, что нужно удалить в моем втором редукторе.
Мои вопросы: можно ли вернуть какое-то значение из действия редуктора? Могу ли я вызвать второе действие из первого? Должен ли я писать всю свою логику вне редукторов и использовать редукторы только как способ изменения состояния, но вычислять, как оно будет изменено изнутри компонента или чего-то еще?
DELETE_COLLECTION
, которое удаляет коллекцию, а также удаляет элементы этой коллекции? Я имею в виду, есть ли случай, когда вам нужно удалить коллекцию и сохранить ее элементы? - person Hani   schedule 03.07.2020