-1

我的代码类组件

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中出现错误“超出最大调用堆栈大小” 。有人请帮助我。

4

1 回答 1

0

在您的功能组件中添加以下代码并尝试:

const update = (callback) => {
  useEffect(() => {
    raf(() => _update(callback));
  }, []);
};

于 2021-08-06T09:04:55.290 回答