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

我在用 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 和 百度 上找了一圈没有找到答案,不知大家有没有遇到过这种情况,麻烦解答一下!

阅读 32.1k
3 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题