首页 > 解决方案 > 在绘制新表格页面之前滚动到视图触发器(具有副作用的事件处理程序)

问题描述

功能:带分页的用户历史表(表数据在一次 API 调用中加载,FE 处理分页)。 副作用:在表格页面更改时滚动到表格标题。

问题:

如果滚动在新表格页面绘制之前触发(并且表格的高度不同),则滚动不起作用。

似乎选项 A 或 B 都可以工作,但我不确定跨操作系统/浏览器环境的效果如何。有没有人对此有经验......或者超时与承诺解决这个问题的利弊?选项 C?

const onPageChange = page => {
    // Original
    dispatch(setCurrentPage(page));
    scrollToRef(tableHeaderRef, 'start');

    // Option A
    // dispatch(setCurrentPage(page));
    // setTimeout(() => scrollToRef(tableHeaderRef, 'start'), 100);

    // Option B (does this need a catch?)
    // new Promise(resolve => {
    //   dispatch(setCurrentPage(page));
    //   resolve();
    // }).then(() => scrollToRef(tableHeaderRef, 'start'));

    // Option C?
};

标签: javascriptreactjsreduxsingle-page-application

解决方案


推荐阅读