如何在 algolia 中强制刷新反应即时搜索 dom 或在完成后立即获取更新的数据?

How to force refresh on react instant search dom in algolia or fetch updated data as soon as it finished?

我正在将 algolia 与 firebase 中的 react-instant-search-dom 集成。 更新产品后,我希望更新的结果反映在前端,但它没有按预期工作。它有时有效但有时无效。 我已经使用了所有可能的方法,例如使用刷新参数和 clearCache 方法,但其中 none 100% 有效。 这里的任何人都可以帮助我吗? 这是我的代码片段。

const handleEdit = (productData) => {
      updateProduct()
          .then((data) => {
            setTimeout(() => {
              setRefresh(true);
              setTimeout(() => {
                setRefresh(false);
              }, 100);
            }, 7000);
          })
          .catch((err) => {
            console.log("Error when saving new product data:", err.message);
          });
      })
  };
<InstantSearch
        indexName={AlgoliaSearchConfig.appIndexName}
        searchClient={searchClient}
        refresh={refresh}
  >

重新初始化 algoliasearch 对象或 searchClient 似乎可以解决问题。

这是一个沙箱,可以看到它的实际效果:https://codesandbox.io/s/strange-easley-2l0zi2?file=/src/App.js

现在不推荐(或最佳做法)在搜索时在每次击键时重新初始化对象。您可以在沙盒中看到的是,每当我们进行更新或保存数据时,我们都会初始化一个新的 algoliasearch 对象。否则我们不会每次击键(搜索)。