reactjs - 用钩子复制 componentDidMount 的正确方法是什么?
问题描述
我无法理解componentDidMount
使用反应钩子重新创建生命周期函数行为的正确方法。
我发现普遍接受的方法是这样的:
useEffect(() => {
//do componentDidMount stuff here
}, []);
但是,当存在其他参数、其他依赖项等时,我会遇到 linting 错误,如下例所示:
useEffect(() => {
fetchData(design, onSuccess, onError);
}, []);
那会引发掉毛错误。处理这种情况的正确方法是什么?我想避免禁用 eslint。
React Hook useEffect 缺少依赖项:'design' 和 'onSuccess'。要么包含它们,要么删除依赖数组 react-hooks/exhaustive-deps
解决方案
我猜你得到了exhaustive-deps
错误?
使用时useEffect
,建议将效果中使用的所有值放在依赖项数组中,这样您就可以“诚实”地了解效果使用的值。Dan Abramov 在这里谈到了这个https://overreacted.io/a-complete-guide-to-useeffect/#two-ways-to-be-honest-about-dependencies。
但是,如果您乐于忽略这一点,并确定您只希望此效果在此组件第一次呈现时运行,那么您可以使用// eslint-disable-line exhaustive-deps
.
编辑:实际上没有办法解决这个问题,因为严格来说,最终你对你的部门并不“诚实”。
推荐阅读
- python - 函数如何知道其调用函数的装饰器
- graphics - 如何在 Kivy 中绘制精确宽度的线条?
- python - 在python中将网络实现与RSA混合
- amazon-web-services - 使用 AWS lambda 函数从 SNS 主题触发器读取和复制 S3 库存数据
- javascript - 如何使用 Jquery 修复不正确的值拖到 drop 函数
- django - How does Django model save data that is cleaned?
- c# - “帮手”类——如何更好的实现
- bar-chart - 了解python代码以创建人口金字塔
- python - itertools.groupby 无法通过外键正确分组 django 查询集
- python - Docker pip依赖安装错误