Algolia vue-instantsearch - удаление результата
В настоящее время я экспериментирую с Алголией. Это действительно впечатляет. Однако я наткнулся на "контрольно-пропускной пункт".
Я использую vue-instantsearch
пакет. В настоящее время он используется только на странице администрирования. На этой странице я могу нажать кнопку, чтобы вызвать модальное окно, которое подтверждает, следует ли его удалить. Я пытаюсь найти способ "просто" удалить указанную статью из результатов без перезагрузки.
Я по сути изучил документацию и нашел deleteObjects
метод, но он не доступен изнутри ais-index
компонент, ни какие-либо из его дочерних компонентов.
Итак, мой вопрос на самом деле: как бы я правильно реализовал это?
Любая помощь в этом вопросе будет принята с благодарностью:)
1 ответ
Хорошо, похоже, я решил свою проблему.
Вот как я это исправил.
Во-первых, я создал свой собственный экземпляр searchStore
const searchStore = createFromAlgoliaCredentials(
'APP_ID',
'SEARCH_KEY'
);
Создав поисковый магазин, я передал его ais-index
Vue компонент, через :search-store
двигательный
Это работает как нормальный vue-instantsearch
составная часть.
Чтобы удалить "вещь" из результатов, мне пришлось пройтись по поисковому хранилищу и удалить результат. В хранилище поиска есть два объекта результатов. Мне нужен был префикс с подчеркиванием, доступный через this.store._results
(this
относится к компоненту Vue, который имеет доступ к поисковому хранилищу).
Полный код для удаления результата:
this.store._results = this.store._results.filter(loopedArticle => {
return loopedArticle.objectID !== article.objectID;
});
Может быть неправильно использовать поисковый магазин таким образом и обращаться к "частному" свойству таким способом, но это единственный способ, которым я мог заставить его работать.
Надеюсь, что это поможет любому, кто нуждается в этой функции!