gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:04:57 25 4
gpt4 key购买 nike

我正在制作一个基于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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com