sortablejs 无法在本地存储中正常工作

sortablejs does not work properly with local storage

提问人:dest3 提问时间:8/2/2023 更新时间:8/2/2023 访问量:35

问:

我正在使用 sortablejs 库来启用列表的重新排序并将顺序保存在本地存储中。我使用 console.log 来检查“获取”和“设置”部分期间发生的情况,它们工作正常。但是,当我刷新页面时,它完全忽略了本地存储,并以以下格式显示列表:“1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|7by|1mv”。我可以理解这个数组的来源,但我无法弄清楚为什么每次刷新页面时它都会完全忽略本地存储中保存的顺序。

// Sortablejs

//obtenemos por ID la seccion en la que se encuentra la lista
const lista = document.getElementById('grilla');
//creamos la lista y aplicamos clases para cada accion
Sortable.create(lista, {
    animation: 200,
    chosenClass: "select",
    dragClass: "drag",
    ghostClass: "fantasma",
    group: "board",
    store: {
         //obtenemos el orden de la lista
         get: function (sortable) {
            var order = localStorage.getItem(sortable.options.group.name);
            console.log(order);
            return order ? order.split('|') : [];
        },
        //guardamos el orden la lista
        set: function (sortable) {
            var order = sortable.toArray();
            console.log(order);
            localStorage.setItem(sortable.options.group.name, order.join('|'));
        }
    }
});

我已经尝试重命名存储列表顺序的变量。我在“获取”和“设置”部分都添加了console.log,两者都运行良好。但是,在刷新页面时,显示的顺序等效于此:“1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|7by|1mv”,忽略本地存储中正确包含列表先前状态的变量。 我需要帮助才能让它工作,我还注意到,当我禁用代码的 get 和 set 部分时,它设置了正确的初始顺序,即“7by|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv|1mv”

JavaScript 本地存储 sortablejs

评论

0赞 TK421 8/2/2023
除了 JS 之外,您能否提供一些 HTML / CSS,以便我们可以重新创建用于测试和调试的问题?
0赞 dest3 8/2/2023
是的,很抱歉我没有把它发布在问题上,我可以给你一个带有代码的存储库:github.com/dest3/weather-app
0赞 TK421 8/2/2023
我目前测试了最新版本,得到了相同的结果;它存储和检索正确,但在加载时未正确排序。在这一点上,我会把它归结为sortable.js中的一个错误。
0赞 dest3 8/3/2023
伤心。。。好吧,我继续前进,我现在在想如何在我自己的 Whit Vanilla JS THX 上实现可排序的效果,以获得回复 <3

答: 暂无答案