reactjs - react-window-infinite-loader 材质-ui 自动完成
问题描述
我正在尝试使用 react-window-infinite-loader 在 material-ui 自动完成下拉列表中显示无限滚动列表。当我滚动到列表底部时,我想从服务器获取下一页项目。我创建了一个代码沙盒示例,它结合了用于虚拟化列表的 material-ui Autocomplete 示例和react-window-infinite-loader 示例。当我滚动到列表底部时,会加载下一页数据,但是某些原因导致列表滚动回顶部。加载新数据后如何保持滚动位置?
谢谢!
解决方案
我通过使用 useAutocomplete 钩子让它工作。我创建了一个显示工作代码的沙箱: https ://codesandbox.io/s/material-demo-0fbyb
只有一个问题,我仍然无法弄清楚。当按下键盘上的向下箭头键选择列表中的项目时,您可以选择项目可见“窗口”之外的项目。必须有一种方法可以让列表滚动到所选项目。我猜这是因为需要在 FixedSizeList 组件上设置自动完成引用,但是当 InfiniteLoader还需要将引用传递给 FixedSizeList 组件时,我该怎么做呢?
推荐阅读
- ruby-on-rails - 如何在 Ruby on Rails 中显示数据库中的图像文件?
- r - 根据日期范围合并两个数据集。R
- css - 使用 Material UI 库时,我无法更改模板的图像 - 如何更改随机飞溅以设置图像?
- arrays - 修改已存储在数组中的多个 csv 文件
- ios - 当我使用它的值创建对象 Xcode 时,日期变量设置为零
- java - React Native HeadlessJS 地理位置不起作用
- pytorch - 如何在 Pytorch 中选择数据集的子集?
- javascript - 辅助函数在 Javascript 中不起作用
- mysql - 我想结合两个nodejs程序以获得一个结果:按类型过滤的特定CSV数据 - 如何正确组合代码?
- node.js - 如何在 tron 网络上监听 trx 事件?(Tronweb)nodejs