reactjs - 带有钩子(Hook)的 React-Table 失去了对表内输入的关注?

标签 reactjs react-hooks react-table

代码沙盒:https://codesandbox.io/embed/react-table-editable-content-ggvcy

当尝试处理 React-table 的输入时,我的输入失去了焦点,所以我一次只能输入 1 个字符。

如何修复我的渲染周期以允许输入?

编辑:我不小心用工作版本的代码更新了沙箱,虽然它有另一个错误:How to capture react events during a refresh update due to a focus onBlur change?

最佳答案

这个问题非常狡猾:当您将“Cell”渲染 Prop 传递给 react 表时,它将被视为 react 组件。这意味着他们会像这样使用:<Cell ... /> .
https://github.com/tannerlinsley/react-table/blob/v6.9.2/src/utils.js#L208https://github.com/tannerlinsley/react-table/blob/v6.9.2/src/index.js#L541

这意味着,在每次渲染时,您将创建一个新的 组件 renderEditable 所以当显示发生变化时,旧的 renderEditable 将被卸载,新的 renderEditable 将取而代之。这是不幸的,因为内部输入会失去焦点。

您可以做的是使用旧版本(无 Hook ),如下所示:https://github.com/tannerlinsley/react-table/blob/8b07b2c84e0ee29e0ecaa4fe23e96e864ab806a9/archives/v6-examples/react-table-editable-content/src/index.js

或者像这样一直使用钩子(Hook):https://github.com/tannerlinsley/react-table/blob/5145a632c944d135863d8a2f14a160a2f9395f61/examples/editable-data/src/App.js

关于reactjs - 带有钩子(Hook)的 React-Table 失去了对表内输入的关注?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419197/

相关文章:

javascript - 更新状态数组中的特定对象

django - 从 ReactJs/Axios 下载的 Zip 文件已损坏

javascript - 将 Material UI <Grid> 用于两列布局的问题

reactjs - React-table 全局过滤器错误不起作用

javascript - 使用 React-Table 和 Fetch GET JSON 创建包含列的动态表

reactjs - 离开首页时,React-router V-5.2.0无法正常工作

javascript - 当我折叠、添加或删除面板时,React-hook-form 字段值会丢失

reactjs - React useEffect 在每次输入更改时添加一个事件监听器来引用

reactjs - useEffect 未在 ContextProvider 中触发

reactjs - 如何防止扩展的 React-Table 行在重新渲染时折叠?