【发布时间】:2022-12-06 13:40:04
【问题描述】:
我正在创建这个项目,但我无法了解为什么我的代码在刷新时没有保存到 localStorage。当我将内容添加到 JSON 文件时,它会正确保存,但是当我重新加载 JSON 文件中的所有数据时,它们就会消失。
我已经尝试了许多不同的格式来加载信息,例如在格式字符串中添加其他格式,但似乎没有任何效果。
const [notes, setNotes] = useState([
]);
useEffect(() => {
const savedNotes = localStorage.getItem('react-notes-app-data');
if (savedNotes != null) { setNotes(JSON.parse(savedNotes)); }
}, []);
useEffect(() => {
localStorage.setItem(
'react-notes-app-data',
JSON.stringify(notes)
);
setDisplayNotes(notes);
}, [notes]);
【问题讨论】:
-
我认为您应该在存储中设置数据之前添加一个条件
notes != null。另外,请确保无论何时修改 notes 数组,它都应该是一个新数组,否则它不会触发 useEffect,因为对象相同。
标签: reactjs json local-storage