【问题标题】:React-Virtualized List skips rows when scrollingReact-Virtualized List 在滚动时跳过行
【发布时间】:2017-04-20 04:27:49
【问题描述】:

当我尝试按如下方式呈现项目列表时遇到问题:

render()
{
  const data = (my data);

  const cellRenderer = ({index, key}) => (
    <li key={key}>
      <Datum data={data[index]} />
    </li>
  );

  return (
    <AutoSizer>
      {
        ({ width, height }) => (

          <CellMeasurer cellRenderer={ cellRenderer } 
                        columnCount={ 1 }
                        width={ width }
                        rowCount={ transactions.length }>
            {
              ({ getRowHeight }) => (
                <List height={ height }
                      overscanRowCount={ 50 }
                      noRowsRenderer={ () => (<div> Nix! </div>) }
                      rowCount={ transactions.length }
                      rowHeight={ getRowHeight }
                      rowRenderer={ cellRenderer }
                      width={ width } />
              )
            }
          </CellMeasurer>
        )
      }
    </AutoSizer>
  );
}

现在,当我向下滚动时,它会每隔一秒跳过一个列表项,直到我看到一半的页面为空但仍可滚动。

向上滚动时更糟糕的是,它会跳过一半的页面。

AutoSizerCellMeasurer 似乎工作正常。我稍微浏览了一下代码,看起来它们确实创建了正确的测量值。

我的数据只是一个静态对象数组。不是承诺或流。

我还更改了我的 Datum 组件几次,以确保它完全是静态标记,但这并没有改变任何东西。

有什么想法吗?

[编辑]

这是一个显示我的问题的 Plunker:https://plnkr.co/edit/2YJnAt?p=preview

具有讽刺意味的是,在摆弄它时,我意外地发现了我做错了什么。我会用我的解决方案提交答案。

【问题讨论】:

标签: javascript reactjs react-virtualized


【解决方案1】:

好吧,我发现了问题(@MBrevda!+1!)

rowRenderer 方法采用需要应用于呈现列表元素的样式:https://plnkr.co/edit/FzPwLv?p=preview

【讨论】:

    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 2018-10-31
    • 2021-11-27
    • 1970-01-01
    • 2019-02-17
    • 2017-06-25
    • 1970-01-01
    • 2021-02-02
    相关资源
    最近更新 更多