【发布时间】:2022-01-02 17:50:26
【问题描述】:
我的网站上有一个如下所示的待办事项列表:
当我单击加号按钮时,会出现一个输入,我可以添加一个项目,将项目添加到数据库中。问题是,虽然它确实将项目添加到数据库中,但在页面刷新之前它不会显示在网页上。这是添加按钮:
<div>
<input
type="text"
onChange={(e) => setItem(e.target.value)}
/>
<button onClick={() => itemHandler()}>
Add
</button>
</div>
itemHandler 函数只是用新的待办事项更新数据库:
async function itemHandler() {
setAddItem(false)
const res = await fetch('/api/add-todo-item', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
user_id,
item
}),
})
const json = await res.json()
if (!res.ok) throw Error(json.message)
setItem("")
}
但是当这个函数运行时,数据库会更新,但新项目在页面刷新之前不会显示在网站中。
待办事项最初作为参数传递到功能组件中:
function ToDoList( {user_id, todo_items} ) { ...
那么有没有办法刷新组件,同时在 itemHandler 将它们添加到数据库后将更新版本的项目从数据库传递给组件?
【问题讨论】:
标签: javascript mysql reactjs