Я работаю над небольшим приложением ToDo в Svelte в учебных целях (я новичок в Svelte).
Я застрял, пытаясь добавить ошибки проверки в форму New Todo.
Внутри тегов <script>
у меня
var errors = [];
function addTodo(){
//Empty todo object
let newTodo = {};
//Set new todo object's properties (id, title, completed)
if (todos.length == 0) {
newTodo.id = 1;
} else {
newTodo.id = todos[0].id + 1;
}
if(document.querySelector('#new_todo').value.length < 3){
errors.push('Please introduce at least 3 characters');
} else {
newTodo.title = document.querySelector('#new_todo').value;
}
newTodo.completed = false;
//Add new todo
if (errors === undefined || errors.length == 0) {
todos.unshift(newTodo);
}
todos = todos;
//Empty field when done adding todo
document.querySelector('#new_todo').value = '';
}
В представлении:
{#if errors.length > 0}
<div class="m-2 alert alert-danger">
{#each errors as error}
<p>{error}</p>
{/each}
</div>
{/if}
<div class="input-group p-2" id="addForm">
<input type="text" class="form-control" id="new_todo" placeholder="New Todo">
<div class="input-group-append">
<button on:click="{addTodo}" class="btn btn-sm btn-success">Add</button>
</div>
</div>
По какой-то причине, которую я не смог найти, сообщение о проверке ошибки не появляется, а на консоли отображается Uncaught (in promise): if_block0.p is not a function
.
См. REPL здесь.
В чем моя ошибка?