在Next.js中,我使用以下代码:
const [card, setcard] = useState([]);
useEffect(() => {
localStorage.setItem('items', JSON.stringify(card));
}, [card]);
useEffect(() => {
const items = JSON.parse(localStorage.getItem('items'));
if (items) {
setcard(items);
}
}, []);
我可以看到,当卡的值更改时,本地存储会向我显示卡的值,这是一个JSON,所以当我刷新时,我只看到这个[]
我使用了这个教程:https://www.freecodecamp.org/news/how-to-use-localstorage-with-react-hooks-to-set-and-get-items/
我如何修复代码,这样我才不会在刷新后丢失卡的价值?
另外,我使用cookies
像这样存储card
,它很有效,但当我的JSON中的项变得更大时,cookie不再存储;这就是我想使用本地存储的原因.
示例:
const [card, setcard] = useState(() => eval(getCookie('card') || []));
setCookie('card', JSON.stringify(card), {
path: '/',
maxAge: 60 * 60 * 24,
HttpOnly: true,
Secure: true,
});