客户端更新后反应虚拟化中断的反应方法调用顺序

问题描述

我有一个运行 React 的旧项目。其中一个组件渲染了一个水平树视图,如 this one。当您单击文件夹时,它会呈现子文件夹。

最近我更新了所有客户端并重构了代码包括 React。

在这个组件只渲染根文件夹,我已经找到了问题所在,但我不知道如何解决它。 这是负责的方法,它使用 react-virtualized 组件

renderItems(items) {
    if (items.length > 0) {
      return (
        <div className="panel-wrapper">
          <AutoSizer>
            {({ height,width }) => (
              <List
                width={width}
                height={height}
                rowCount={items.length}
                rowHeight={42}
                roWrenderer={this.roWrenderer(items)}
              />
            )}
          </AutoSizer>
        </div>
      );
    }
    return null;
  }

这个方法调用两次:一次用 items 填充父文件夹,然后用子文件夹。 与父母一起工作正常但是当它再次被调用并在它进入 AutoSizer 之前回调 items 被正确填充,在它进入后 items 被父文件夹填充所以它只呈现父母. 似乎更新客户端改变了组件生命周期,因此方法调用错误

如何将正确的项目传递给 roWrenderer?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...