javascript - react 表失去了对过滤器的关注?

标签 javascript reactjs react-table react-window

我正在制作一个基于react-table v7和react-window的表格。我在这个网站上发现了其他问题,也有同样的问题,但几乎他们都在使用 v6 - 几乎不同。

问题是,在我们键入后,甚至当我们只是触摸输入时,过滤器文本字段将失去焦点(我知道表格正在重新渲染)。但我几天都找不到任何解决方案。

请帮忙,非常感谢。

Here is the code sanbox

最佳答案

您正在使用 uniqied() 作为 key,即 key={uniqid()}。因此,在每次重新渲染时,您都会创建一个新的 id 并将其分配给 key。当 key 属性更改时,组件不会重新渲染,但会重新挂载。因此失去了焦点。

下面应该可以工作。

<div {...getTableProps()} className={css.table} style={{ ...styles }}>
          <div className={css.thead}>
            {headerGroups.map((headerGroup, index) => (
              <div
                key={index}
                {...headerGroup.getHeaderGroupProps()}
                className={css.heading + " " + css.tr}
              >
                {headerGroup.headers.map((column, i) => (
                  <div
                    key={i}
                    className={
                      css.th + " " + (column.fixedWidth ? css.fixed__width : "")
                    }
                    style={{ ...getCellStyles(column) }}
                  >
                    <div className={css.th__inner}>
                      <div {...column.getHeaderProps()}>
                        <div

代码的工作副本在这里:

https://codesandbox.io/s/table-key-issue-bpkly

快速说明 - 在上面的代码中,您可以使用在整个渲染周期中保持不变的唯一值。为了演示,我使用了索引。

关于javascript - react 表失去了对过滤器的关注?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61201030/

相关文章:

javascript - 垂直 ionic 滚动未正确实现为页脚按钮覆盖列表组件

javascript - 你如何在 JSX 模板文字中取消转义 '\'?

javascript - react 表中的自定义 "Previous"和 "Next"文本

javascript - 更改 Prop 时, react 表重新渲染不起作用

javascript - 使用 gl-react-image 旋转图像

Javascript 字符串密码/加密和隐藏 key

更新面板时 JavaScript 不工作

javascript - 箭头函数 "this"绑定(bind)在 React 组件中不起作用

javascript - 如何以正确的方式创建这个 react 模式?

reactjs - 使用自定义字段而不是索引来 react 表行选择