localStorage 保存数据,刷新浏览器之后数据就消失了

发布于 2022-09-02 11:26:45 字数 1358 浏览 17 评论 0

我在用 React 做一个 Todo list 的应用,想使用 window.localStorage 存储一些数据。当我按正常流程操作存储数据后,刷新页面数据就没有了,下面是部分代码:

var Storage = require('../lib/localstorage')()

var AppRoute = React.createClass({
    getInitialState: function () {
        return {
            thisShowPop: false,
            tasks: []
        }
    },

    componentDidMount: function () {
        var tasks = Storage.get('tasks') || []
        this.setState({tasks: tasks})
    },

    addItem: function (name, desc) {
        var tasks = this.state.tasks
        var taskId = tasks[0] ? tasks[0].id + 1 : 1
        var task = {...}

        tasks.unshift(task)
        this.setState({tasks: tasks})
        Storage.set('tasks', tasks)
        this.hidePop()
    },

    finishItem: function (id, thought) {
        var tasks = this.state.tasks
        var task = {...}

        this.setState({tasks: tasks})
        Storage.set('tasks', tasks)
    }
})

存储数据时截图:

clipboard.png

刷新浏览器后存储的数据消失:

clipboard.png

去 Google 和 百度 上找了一圈没有找到答案,不知大家有没有遇到过这种情况,麻烦解答一下!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏有森光若流苏 2022-09-09 11:26:46

在componentDidMount的时候log一下get到的tasks,看看是不是空的

仙气飘飘 2022-09-09 11:26:46

我猜测是你加载应用的时候错误把数据重置了,比如Storage里的逻辑,或者App的逻辑让应用每次启动都会把tasks设为空。

故事和酒 2022-09-09 11:26:46

可能初始化的时候重置了,我用jquery写过一个todo,也用了localstorage,没出现这种问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文