React + Alt: использовать данные из нескольких хранилищ для отправки запроса к источнику данных

Я работаю над приложением, использующим React с Alt Flux. В настоящее время я пытаюсь найти наилучший способ использовать данные из нескольких хранилищ Alt для составления запроса к бэкэнду.

Скажи, у меня есть SheetDataStore, FiltersStore и fetchFilteredData метод в моем DataSource файл. Чтобы получить правильные данные из бэкэнда, мне нужно перейти к fetchFilteredData и некоторые данные листа и фильтры, но когда вы вызываете fetchFilteredData Метод из одного из хранилищ, вы можете передать некоторые аргументы и состояние именно этого хранилища.

Итак, я вижу 2 способа решения этого дела:

1) Я делаю 2 действия: prepareFilters а также fetchData, prepareFilters вызывается из компонента и обрабатывается FilterStore, который готовит все необходимые данные и после этого звонит fetchData действие, передавая подготовленные данные в качестве аргумента. SheetDataStore обрабатывает fetchData действие и вызывает fetchFilteredData имея все необходимые данные сейчас.

Что мне здесь не нравится, так это то, что, как мне кажется, магазины не должны называть действия, так что это своего рода хакерское решение.

2) импортирую FilterStore к SheetDataStore и использовать FilterStore.getState() внутри одного из SheetDataStore методы, чтобы получить все данные, которые мне нужны. Это кажется легким, но могут быть некоторые подводные камни, связывающие магазины таким образом.

Есть ли лучшие практики для такого случая? Может быть, некоторые из вас сталкивались с подобной проблемой и могли бы порекомендовать, какой из путей выбрать из своего опыта?

1 ответ

Сделайте привязку в компоненте. Скажи у тебя FilterComponent затем пройти поисковое действие SheetDataAction.search к нему:<FilterComponent search={SheetDataAction.search} />

И в FilterComponent.render() сделать что-то вроде <button onClick={() => this.props.search(this.props.criteria)} />

Другие вопросы по тегам