Ответ прост.
Давайте посмотрим, как работает redux-thunk .
Промежуточное ПО Redux Thunk позволяет писать создателям действий, которые возвращают функцию вместо действия
Я думаю, что именно это и делает fetchPlayerSeasonStats
. Возвращает некоторую асинхронную функцию, которая выбирает игроков. Redux-thunk помогает отправлять его (я думаю, что вы используете Redux-thunk. В случае, если вы используете какое-то другое асинхронное промежуточное программное обеспечение, оно должно работать по существу так же).
Таким образом, мы можем написать создатель действий, который будет возвращать функцию (как fetchPlayerSeasonStats
), но внутри будет отправлять не действия, а другую функцию. Так что у нас будет функция диспетчеризации, которая будет отправлять действие: -)
Например
fetchAllPlayerStats (thisPlayerId, appSeasonValue) => dispatch => {
dispatch(fetchPlayerSeasonStats(thisPlayerId, appSeasonValue));
dispatch(fetchPlayerSeasonStats(null, appSeasonValue));
}
Затем вы можете использовать this.props.dispatch(fetchAllPlayerStats(thisPlayerId, this.props.appSeason.value))
из componentWillMount
для извлечения всех данных одновременно.
Совет. Текущая реализация fetchAllPlayerStats
получит все данные одновременно. Если вы добавите ключевые слова async / await, вы получите сначала данные для одного игрока, а затем больший набор данных. Модифицированная версия будет выглядеть как
fetchAllPlayerStats (thisPlayerId, appSeasonValue) => async dispatch => {
await dispatch(fetchPlayerSeasonStats(thisPlayerId, appSeasonValue));
await dispatch(fetchPlayerSeasonStats(null, appSeasonValue));
}
Вот простой пример для демонстрации логики