【发布时间】:2021-04-18 03:24:52
【问题描述】:
我不明白该怎么做。我以为只是 .setItem 和 .getItem 但可能 useState 更改状态有问题
const LOCAL_STORAGE_KEY = "products";
const [products, setProducts] = useState([]);
const addProductHandler = (product) => {
console.log(product);
setProducts([...products, { id: uuid(), ...product }]);
};
useEffect(() => {
localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(products));
}, [products]);
useEffect(() => {
const retriveProducts = JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY));
if (retriveProducts) setProducts(retriveProducts);
}, []);
【问题讨论】:
-
现在您在每次安装组件时使用默认的空数组设置它。如果本地存储中不存在密钥,您只想这样做。
-
我想,如果产品有任何变化,那么 setItems 的 useState 就会被调用。那么问题出在 getItems 的 useState 中吗?如果您能详细了解这里实际发生的情况
-
您将
localStorage设置为挂载时的空数组
标签: reactjs react-hooks local-storage