Svelte todo应用程序错误:新的todos id属性永远不会大于2

时间:2020-06-30 14:26:41

标签: javascript svelte svelte-3

出于学习目的,我正在Svelte中开发一个小型ToDo应用程序(对Svelte来说是新手)。

我有以下代码可用于添加新的待办事项:

NSAttributedString

由于某种原因,我无法找到-待办事项的最大编号为2-不计我添加的数量。

请参阅REPL here

我的错误在哪里?

2 个答案:

答案 0 :(得分:1)

更改

newTodo.id = todos[todos.length - 1].id + 1;

newTodo.id = todos[0].id + 1;

因为您的第一个待办事项编号最大,而不是最后一个。

答案 1 :(得分:0)

对我来说似乎复杂而脆弱,为什么不只记得最后一个插入ID?

// ...
    
let todos = [];
let lastInsertId = 0;
    
function addTodo(){
    //Empty todo object
    let newTodo = {};
        
    //Set new todo object's properties (id, title, completed)
    newTodo.id = ++lastInsertId;
    newTodo.title = document.querySelector('#new_todo').value;
    newTodo.completed = false;
        
    //Add new todo at the behining
    todos.unshift(newTodo);
    todos = todos;
}

// ...

为什么还unshift()reverse()而不是仅仅反转并推入列表?