在反应中使用 useRef 钩子后焦点不会移动
P粉358281574
P粉358281574 2024-04-02 21:46:33
[React讨论组]

这是我的代码,我在其中获取对我想要聚焦的当前元素的引用,但焦点不会转到该元素。

  useEffect(() => {
    setTimeout(() => { 
      console.log("This is current barcode ref inside", barcodeRef.current);
      barcodeRef.current && barcodeRef.current.focus(); 
    }, 500)
    //barcodeRef.current && barcodeRef.current.focus();
  }, [tableData]);

这也是我引用我想要关注的输入元素的方式。

            {tableData.map((row, rowIndex) => (
              
                {columns.map(
                  (column) =>
                    !column.hidden && (
                      
                        {column.accessorKey === "ItemName" ? (
                          
                              handleLeaveItem(
                                rowIndex,
                                column.accessorKey,
                                event.target.value
                              )
                            }
                          />
                        ) : (
                          
                              handleSaveCell(
                                rowIndex,
                                column.accessorKey,
                                event.target.value
                              )
                            }
                          />
                        )}
                      
                    )
                )}
                
                     handleRemoveRow(rowIndex)}>
                      
                    
                  
              
            ))}

我也尝试过使用useLayoutEffect,但没有成功。在控制台中,我得到的是我想要关注的正确输入元素。

::before ::after

P粉358281574
P粉358281574

全部回复(1)
P粉828463673

您的 useEffect 需要依赖于 barcodeRef,如下所示:

useEffect(() => {
    const timeout = setTimeout(() => { 
      console.log("This is current barcode ref inside", barcodeRef.current);
      barcodeRef.current && barcodeRef.current.focus(); 
    }, 500)

    return () => clearTimeout(timeout);
}, [tableData, barcodeRef]);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号