我正在尝试清除古腾堡块的存储,并以一定间隔强制每 15 秒获取一次 API。
这就是我获取数据的方式:
const data = useSelect(
(select) => select( CUSTOM_STORE ).getMyData(id),
[id]
);
像这样使用
setInterval
使我的 CUSTOM_STORE
无效
useEffect(() => {
setInterval(() => {
invalidateResolutionForStoreSelector( CUSTOM_STORE );
}, 15000);
}, []);
现在可以了,但它清除了整个
CUSTOM_STORE
(显然)
如何才能使给定的数据无效
id
?
用
invalidateResolutionForStoreSelector( CUSTOM_STORE, id )
做是行不通的。
在您所描述的场景中,我会尝试在
CUSTOM_STORE
之外实现您的 @wordpress/data
,就像文档中的 customStore()
示例一样。然后,您可以使用 subscribe()
(如 Redux 订阅)来监听状态更改,而不是尝试每 15 秒使存储失效。
或者,您可以尝试:
wp.data.dispatch('core').invalidateResolution(CUSTOM_STORE, [id]);
如果无效是你想要的方式..