Пытаюсь разобраться как работает localStorage в связке с react`ом и tp. Написал обычный счетчик и задача стоит в том, чтобы сохранить последнее значение в локаль, потом перезагрузить страницу или закрыть, а при открытие начать с того же места.
Данные записываются, однако при обновлении страницы значение становиться нулевым. Я так понимаю, это происходит потому что useState по дефолту дает значение нуль счетчику, useEffect отрабатывает и записывает туда этот нуль.
Вот сам код:
import React, { useEffect, useState } from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
const [count,setCount] = useState(0);
const inc = () => {
setCount(prev => prev+1)
}
const dec = () => {
setCount(prev => prev-1)
}
useEffect(() => {
localStorage.setItem('count',JSON.stringify(count))
},[count])
useEffect(() => {
const count = JSON.parse(localStorage.getItem('count') || '');
setCount(count)
console.log(count);
},[])
return (
<div className="App">
<h1>Count: {count}</h1>
<button onClick={inc}>+</button>
<button onClick={dec}>-</button>
</div>
);
}
export default App;