Asked Oct 1st, 2:18 AM 73 0 1
  • 73 0 1
0

Theo dõi thay đổi của localStorage trong ReactJS

Share
  • 73 0 1

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');

1 ANSWERS


Answered Oct 1st, 4:05 AM
Accepted
+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

Share
Nguyễn Văn Bách @bachnguyen2907
Oct 1st, 4:13 AM

Thanks bạn

0
| Reply
Share