Javascript storage eventlistener未与对localstorage的任何更新一起工作
在我的componentDidMount中,我试图删除一个localstorage项,并为localstorage中的进一步更改添加一个事件侦听器,但它不起作用Javascript storage eventlistener未与对localstorage的任何更新一起工作,javascript,reactjs,addeventlistener,Javascript,Reactjs,Addeventlistener,在我的componentDidMount中,我试图删除一个localstorage项,并为localstorage中的进一步更改添加一个事件侦听器,但它不起作用 componentDidMount() { localStorage.removeItem("receivedLocation"); window.addEventListener("storage", event => { console.log("Event listener triggered
componentDidMount() {
localStorage.removeItem("receivedLocation");
window.addEventListener("storage", event => {
console.log("Event listener triggered");
if (event.key === "receivedLocation" && event.newValue === true) {
this.setState({
receivedLocation: true
});
}
});
}
然而,如果我删除更新项,它就可以正常工作
componentDidMount() {
window.addEventListener("storage", event => {
console.log("Event listener triggered");
if (event.key === "receivedLocation" && event.newValue === true) {
this.setState({
receivedLocation: true
});
}
});
}
我无法重置localstorage,也无法监听localstorage中未来的更改,存储事件不会触发。它用于通知应用程序中其他打开的选项卡某些更改 窗口界面的存储事件在存储区域打开时激发 (localStorage或sessionStorage)已在的上下文中修改 另一份文件 如果试图通知当前选项卡中的其他组件,则可以使用
const event = new Event('EVENT_NAME', { detail: { yourPayload }});
window.dispatchEvent(event);
// in your component
window.addEventListener('EVENT_NAME', configChangedHandler, false);
// cleanup
window.removeEventListener('EVENT_NAME', configChangedHandler);
您是否在第一个代码块中发布了错误的示例?它们看起来一模一样