【发布时间】:2020-07-24 11:34:56
【问题描述】:
考虑以下问题 - 我有一个条件检查 local storage 是否有 JSON object,如果不存在,则将其设置在本地存储中:
设置正确:
但是如果它确实存在,我想从本地存储中获取它并使用useState 将其设置为我的状态:
export default function Day({ dayInfo }) {
var [dayInfoInChild, setDayInfoInChild] = useState([]);
useEffect(() => {
if (dayInfo !== null) {
var modifiedDayInfo = dayInfo
.split(' ')
.map((item) => {
if (item.indexOf(',')) return item.replace(/,/g, '');
})
.join('-');
if (localStorage.getItem(modifiedDayInfo)) {
setDayInfoInChild((dayInfoInChild) => [
...dayInfoInChild,
modifiedDayInfo,
]);
console.log('dayInfoInChild', dayInfoInChild);
} else {
localStorage.setItem(modifiedDayInfo, JSON.stringify({}));
}
}
}, [dayInfo]);
日志返回:
`dayInfoInChild` ["April-2-2020", "April-3-2020"]
我希望它是:
`dayInfoInChild` ["April-2-2020" : "{}", "April-3-2020": "{}"]`
这是如何实现的?欢迎黑魔法...
【问题讨论】:
标签: reactjs local-storage react-hooks use-state