在您的Todos.svelte 模板中,newTodoTitle 只是一个字符串。 on:click={newTodoTitle} 应该调用一个函数。特别是,听起来它应该调用您的 addTodo 函数。不幸的是,addTodo 对enter 键进行了检查。通过一些调整,您应该能够使其正常工作。
- 为您的 keydown 创建一个名为
submit 的新函数:
function submit(event) {
if (event.key === 'Enter') {
addTodo();
}
}
- 让该函数调用修改后的 addTodo 版本:
function addTodo() {
todos = [...todos, {
id: nextId,
completed: false,
title: newTodoTitle,
date: toDoItemDate,
}];
nextId = nextId + 1;
newTodoTitle = '';
toDoItemDate = '';
}
- 从您的
input 致电提交
<input
type="text"
class="todo-input"
placeholder="click a to-do, select target date, and hit enter..."
bind:value={newTodoTitle}
on:keydown={submit}>
- 点击
button 拨打addTodo
<button on:click={addTodo}>Enter</button>
这里是REPL