как правильно вызвать API, чтобы он использовался повсюду в приложении в соответствии с редукцией, независимо от маршрута - PullRequest
0 голосов
/ 16 октября 2018

Я использую реаги и редуксы.Мой основной компонент вызывает API и хранит его в хранилище резервов.По сути, это список JSON: [{id: 1, name: Sarah}, {id:2, name: Tom}]

У меня есть новый маршрут, который отображает новый компонент, который зависит от списка JSON выше, с URL: /detail/:id

Вместоповторного вызова API, я извлекаю его из своего магазина приставок.

Если пользователь переходит на mydomain.com, приложение работает нормально, потому что первое, что он сделает, - это вызов API и сохранение его для использования.по всему приложению.

Проблема в том, что, если пользователь напрямую делает mydomain.com/detail/1, мое приложение получит список из хранилища приставок, который пуст, и отобразит сообщение об ошибке.Это связано с тем, что основным компонентом является тот, который обрабатывает вызовы API и сохраняет его в хранилище избыточностей.Однако основной компонент здесь даже не отображается, поэтому API не выполняется, и, следовательно, мое хранилище избыточностей пусто.

Как я могу гарантировать, что эти основные API выполняются каждый раз, когда пользователь посещает приложение, независимо от того, какоймаршрут без необходимости вызова каждого компонента API

1 Ответ

0 голосов
/ 16 октября 2018

У меня есть 3 предложения:

  1. Используйте redux-saga, получите ваши данные в саге по какому-нибудь вызову действия и вызывайте это действие из любого места.
  2. Вы можете разместить обаваши страницы в одном родительском элементе, который будет предварительно загружать данные и только после них будет отображаться фактическая страница (например, если вы используете реагирующий маршрутизатор, это будет действительно простая задача)
  3. Вы можете создать несколькоКомпонент-обертка, который будет загружать данные, а затем визуализировать ваш контент.Разница со вторым предложением заключается в том, что вы будете использовать его только для страниц, для которых эти данные должны быть предварительно загружены, а не для предварительной их глобальной загрузки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...