我已经开始了一个实习,我必须使用NEXT JS建立一个待办事项列表。但问题出现了,该应用程序也更新了一个空字符串。我必须在这个问题上工作,并有20多个小时来挖掘一个解决方案。我无法解决它。我试图传递一些参数,但它不工作。
import { useState } from "react"
import '../styles/globals.css'
const index=()=> {
const [userinput,setuserinput]=useState("")
const [todolist,settodolist]=useState([])
const handlechange=(e)=>{
e.preventDefault()
if(e.target.value!=""){
setuserinput(e.target.value)
}
}
const handlesubmit=(e)=> {
settodolist([
userinput,
...todolist
])
e.preventDefault()
}
const handledelete=(todo)=>{
const updatedelete=todolist.filter(todoitem => todolist.indexOf(todoitem) != todolist.indexOf(todo))
settodolist(updatedelete)
}
return(
<div className="FLEX">
<h3 className="heading">Welcome to Next JS To Do app</h3>
<form className="FORM">
<div className="Wrap">
<input type="text" onChange={handlechange} placeholder="Enter a todo item" className="INPUT"></input>
<button onClick={handlesubmit} className="Button">Submit</button>
</div>
</form>
<ul>
{
todolist.length>=1?todolist.map((todo,idx)=>{
return <li key={idx}>{todo} <button onClick={(e)=>{
e.preventDefault()
handledelete(todo)
}}>Delete</button></li>
}):"Enter a Todo List"
}
</ul>
</div>
)
}
export default index
3条答案
按热度按时间daolsyd01#
需要将
value
属性传递给input
元素:rdlzhqv92#
如果你不想让用户提交一个空的项目到todo列表,检查用户输入是否为空。
czfnxgou3#
我相信这个问题是为了防止用户输入一个没有名字的待办事项。在这种情况下,按照前面提到的注解做,并将值prop添加到输入中:
第一个月
然后把它添加到handleSubmit函数中: