我是reactjs方面的新手。我正在尝试在我的子组件中添加一个onClick事件,如下所示:
## BlogList.js
<button onClick={handleDelete(blog.id)}>delete</button>
父组件中的handleDelete函数为:
## Home.js
const handleDelete = (id) => {
const newBlogs = blogs.filter((blog) => blog.id !== id)
setBlogs(newBlogs)
}
错误消息为:呈现其他组件(BlogList
)时无法更新组件(Home
)。若要在BlogList
中找到错误的setState()调用
为什么它不工作?为什么它必须写得像<button onClick={()=>handleDelete(blog.id)}>delete</button>
?
1条答案
按热度按时间x8diyxa71#
上面的代码意味着在JSX渲染之后立即执行函数。
您可以查看下面的代码来了解函数的即时执行
为了避免这种情况,应该像下面这样删除
()
型
类似地,在React中,可以通过引入 Package 器来避免这种情况
然后叫它就像下面