@Zewkin
Я у мамы фронтэндер

Когда mapStateToProps готов?

Привет,

У меня в store есть массив неких элементов. Для каждого из них мне нужно в компоненте вызвать асинхронную функцию - предположим, что это массив адресов кошельков, и для каждого мне нужно вызвать getBalance.

Проблема в том, что на этапе `componentDidMount()` нужный массив еще пустой. Пользоваться `componentWillReceiveProps()` тоже не круто - в компоненте постоянно что-то меняется, и каждый раз дергать сервер не нужно, нужно только один раз.

Как обычно действуют в таких ситуациях? Спасибо.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 2
@davidnum95
Как обычно действуют в таких ситуациях?

Выносят в отдельный слой, например redux-saga.
Ответ написан
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
вариант: делаете компонент WalletsContainer, в которой передается массив кошельков (сначала пустой, а потом уже и заполненый, и все без доп проверок, просто пришли новые пропсы), в котором внутри проверяется запросом каждый кошелек (через promise.all в экшене) и в итоге по окончанию проверок всего что нужно - вызывается апдейт в сторе. Либо апдейты в сторе вызываются асинхронно, обновляя только нужный кошелек (запрос на баланс котрого завершился). Если нужно взаимодействовать с родителем - либо функции прокидываете, либо используете redux далее.

еще вариант: " Придется городить какую-то херню со счетчиком, похоже, чтобы работало только первый раз." только без херни. Смотрите если в кошельках было пусто, а стало густо - обновляете и делаете какие нужно запросы. Если нет - этот "иф" проскакивается и ничего не происходит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы