Yêu cầu thg 10 1, 2020 2:18 SA 182 0 1
  • 182 0 1
+1

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

Chia sẻ
  • 182 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 CÂU TRẢ LỜI


Đã trả lời thg 10 1, 2020 4:05 SA
Đã được chấp nhận
+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

Chia sẻ
Avatar Nguyễn Văn Bách @bachnguyen2907
thg 10 1, 2020 4:13 SA

Thanks bạn

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí