如何在 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 对象。否则我们不会每次击键(搜索)。
我正在将 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 对象。否则我们不会每次击键(搜索)。