【问题标题】:Algolia vue-instantsearch - Deleting a resultAlgolia vue-instantsearch - 删除结果
【发布时间】:2019-01-06 13:47:15
【问题描述】:

我目前正在尝试使用 Algolia。到目前为止真的令人印象深刻。但是,我遇到了一些“障碍”。

我正在使用vue-instantsearch 包。它目前仅在管理页面上使用。在这个页面上,我可以单击一个按钮来调出一个模式,它确认是否应该删除它。我正在努力寻找一种方法来从结果中“简单地”删除指定的文章,而无需重新加载。

我基本上浏览了文档并找到了 deleteObjects 方法,但它不能从 ais-index 组件中访问,也不能从它的任何子组件中访问。

所以,我的问题确实是,我将如何正确地实现这一点?

对此事的任何帮助将不胜感激 :)

【问题讨论】:

    标签: vuejs2 algolia vue-instant-search


    【解决方案1】:

    好的,我似乎已经解决了我自己的问题。

    这是我修复它的方法。

    首先,我创建了自己的 searchStore 实例

    const searchStore = createFromAlgoliaCredentials(
        'APP_ID',
        'SEARCH_KEY'
    );
    

    实例化搜索存储后,我通过 :search-store 属性将其传递给 ais-index Vue 组件。

    这就像一个普通的vue-instantsearch 组件。

    要从结果中删除“事物”,我必须遍历搜索存储并删除结果。搜索存储中有两个结果对象。我需要的是带有下划线前缀的那个,可以通过this.store._results 访问(this 指的是 Vue 组件,它可以访问搜索存储)。

    删除结果的完整代码:

    this.store._results = this.store._results.filter(loopedArticle => {
        return loopedArticle.objectID !== article.objectID;
    });
    

    以这种方式使用搜索存储并以这种方式访问​​“私有”属性可能不正确,但这是我让它工作的唯一方法。

    希望这可以帮助其他需要此功能的人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-15
      • 2017-11-26
      • 1970-01-01
      • 2021-05-08
      • 2021-09-02
      • 1970-01-01
      • 2023-04-03
      • 2020-02-15
      相关资源
      最近更新 更多