+1
Theo dõi thay đổi của localStorage trong ReactJS
Mỗi khi item test_abc
trong local storage bị thay đổi hoặc bị xóa đi thì mình cần hàm xử lý nó, hiện tại mình xóa bằng tay trong local storage thì hàm localStorageUpdated
vẫn chạy, nhưng khi dùng localStorage.removeItem('test_abc')
thì hàm localStorageUpdated
lại không chạy và item test_abc
trong local storage đã bị xóa. Có cách nào để listen local storage bị thay đổi không nhỉ ? Thanks mn.
componentDidMount() {
window.addEventListener('storage', this.localStorageUpdated);
}
componentWillUnmount() {
window.removeEventListener('storage', this.localStorageUpdated);
}
localStorageUpdated = (e) => {
const testAbc = e.storageArea.test_abc;
if (!testAbc || moment().isSameOrAfter(testAbc)) {
// show error
}
}
// đoạn xóa item
localStorage.removeItem('test_abc');
Thêm một bình luận
1 CÂU TRẢ LỜI
+2
Sửa đổi trên cùng 1 tab thì event storage
không được trigger
https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API#Responding_to_storage_changes_with_the_StorageEvent
Event này chỉ kích hoạt ở các tab khác nhau của cùng 1 trang
Thanks bạn