Как сохранить результаты автозаполнения в редуксе и реагировать - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь выяснить, как лучше всего работать с компонентами реагирования, редукса и автозаполнения. В настоящее время я использую response-select . У меня есть проблема, когда и где сделать вызов API для получения результатов автозаполнения.

Я пытался решить эту проблему двумя способами:

  1. Выполните вызов API изнутри компонента или с помощью обратного вызова, переданного из контейнера, обертывающего компонент. Это прекрасно работает для меня. Я полагаю, что в результате модульного тестирования это немного менее аккуратно.

  2. Поднять избыточное действие при нажатии клавиши. В действии создатель делает вызов API. Благодаря использованию промежуточного программного обеспечения redux-thunk, обещание выполнено, и в результатах поиска появляется новое действие в виде полезной нагрузки, которое сохраняется в некоторой части хранилища. Компонент автозаполнения прослушивает этот список и отображает список результатов. Я частично получил эту работу с act-select , но состояние входного компонента стирается при последующих нажатиях клавиш.

Я ищу руководство о преимуществах / недостатках любого из этих подходов и о том, есть ли здесь лучшая практика для принятия.

Спасибо.

1 Ответ

0 голосов
/ 10 июля 2018

В случае, если кто-нибудь приземлится здесь в поисках обновления.

Проработав несколько месяцев в режиме реагирования и получив больше опыта, я могу упомянуть здесь путь, по которому я пошел.

Хотя результаты автозаполнения можно хранить в хранилище с избыточностью, это дает мало преимуществ. Я реализовал это как эксперимент. Поскольку эти результаты эфемерны для пользователя, вполне разумно хранить их в состоянии компонентов. Это последний подход, который я выбрал.

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

Я также изменил библиотеку автозаполнения с реакции-выбора на пониженную передачу, чтобы получить больше контроля над реализацией моего автозаполнения.

Гммм как всегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...