请教一个关于 useEffect 依赖的问题
最近在学习 react 和 nextjs ,算初学者,感觉我写的很多 useEffect eslint 都提示缺少依赖,但其实我觉得写的依赖已经够了
比如这样
const [conversation, setConversation] = useState<Conversation[]>([])
useEffect(() => {
if (currentChatTitle) {
setConversation(
conversation.map((i) => {
return {
...i,
title: i.id === currentChatId ? currentChatTitle : i.title,
}
})
)
}
}, [currentChatId, currentChatTitle])
eslint 就说缺少conversation
这个依赖,但是加了之后就无限执行这个 useEffect 回调了,其实我连这个currentChatId
都不想加入依赖
eslint 也给了解决方案就是改成setXXX((prev)=>xxx)
,但这样好麻烦啊,或者就是 disable 掉这一行
useEffect(() => {
if (currentChatTitle) {
// 改成`setXXX((prev)=>xxx)`
setConversation((conversation) =>
conversation.map((i) => {
return {
...i,
title: i.id === currentChatId ? currentChatTitle : i.title,
}
})
)
}
}, [currentChatId, currentChatTitle])
请问下各位平时会关掉这个eslintreact-hooks/exhaustive-deps
这个规则吗
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.