reactjs - 如何使用钩子将类组件转换为功能组件
问题描述
我的代码类组件
raf = (callback) => {
var self = this;
if (this.requestFrame) raf.cancel(this.requestFrame);
this.requestFrame = raf(function () {
self.requestFrame = undefined;
callback();
});
}
update = (callback) => {
this.raf(function () { this._update(callback) });
}
我的代码功能组件
const raf = (callback) => {
if (Scrollbars.requestFrame) raf.cancel(Scrollbars.requestFrame);
Scrollbars.requestFrame = raf(() => {
Scrollbars.requestFrame = undefined;
callback();
});
};
const update = (callback) => {
raf(() => _update(callback));
};
我正在从类组件切换到函数组件,但是当我切换时,函数raf中出现错误“超出最大调用堆栈大小” 。有人请帮助我。
解决方案
在您的功能组件中添加以下代码并尝试:
const update = (callback) => {
useEffect(() => {
raf(() => _update(callback));
}, []);
};
推荐阅读
- reactjs - 类型'typeof import(“...”)'中缺少属性'default',但类型'{默认值:ComponentType
; }' - html - 如何在 CSS 中的 div 上创建响应式、缩放的“堆”效果?
- bash - 为包含特定单词的每一行添加后缀
- windward - 如何禁用或删除安全方法 Windward?
- python - 如何绘制饼图而不相互重叠标签
- snowflake-cloud-data-platform - Snowflake 多集群仓库性能 vs 大仓库规模的单仓库
- symfony - Symfony 5.3 登录错误 无效的 CSRF 令牌
- magento2 - magento 2 javascript如何获取客户数据
- angularjs - Jasmine/Karma 单元测试 AngularJS 服务:如何模拟“导入”
- .htaccess - 谷歌没有索引 https