在这种情况下,当我将待办事项添加到列表中并尝试编辑添加的待办事项时,它只会添加一个新字母,而键入下一个字母时,它只会始终替换最新的字母。例如,单词 hello,无论您输入多少个字母,都只会添加一个字母(例如 hellop
、hellow
、hellol
,你好
)。检查 console.log
以了解问题。
const addTodo: AddTodo = newTodo => {
newTodo.trim() !== "" && setTodos([...todos, { text: newTodo, complete: false, edit: false }]);
}
const getEditText: GetEditText = getEditedTodo => {
console.log('getEditText ' + getEditedTodo);
}
const saveEditedTodo: SaveEditedTodo = currentTodo => {
console.log('saveEditedTodo ' + JSON.stringify(currentTodo.text));
}
return (
<div>
<input type="input" onChange={(e) => getEditText(e.target.value)} value={todo.text} />
<span onClick={() => saveEditedTodo(todo)}>Save</span></div> :
<li>
)
最佳答案
您没有将新值分配给变量 todo.next
您需要更新输入字段绑定(bind)值的变量。因此,请尝试为此类问题创建一个 fiddler
关于javascript - 如何制作一个可以编辑和保存的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59626503/