{ if(current) { setCo..._react usere">
当前位置:   article > 正文

react 通过 ref 获取 dom 节点的信息_react useref获取dom是undefind

react useref获取dom是undefind

方式1:在 useEffect 中使用通过 useRef 获取的 dom 节点

  1. import { useRef, useState, useEffect } from "react";
  2. const test = () => {
  3. const divRef = useRef();
  4. console.log('1---divRef', divRef);// 1---divRef {current: undefined}
  5. useEffect(() => {
  6. console.log('2---divRef', divRef);// 2---divRef {current: div}
  7. }, [])
  8. return (
  9. <div ref={divRef} style={{height: 100}}>
  10. {divHeight}
  11. </div>
  12. )
  13. }
  14. export default test;

弊端:在 useEffect 之外获取不到该 dom 节点(注意:useEffect 里的代码是最后执行的)。

方式2:通过回调函数获取 ref 的 dom 节点

ref 属性可以是一个回调函数,这个回调函数会在组件被挂载后立即执行。

  1. const Test = () => {
  2. const one = (c) => {
  3. console.log('one', c);
  4. }
  5. return (
  6. <div ref={one}></div>
  7. )
  8. }

方式3:

  1. const Test = () => {
  2. componentDidMount = () => {
  3. this.oneRef();
  4. }
  5. oneRef = () => {
  6. console.log('123456789--->', this.refBox);
  7. const text = "hello world!";
  8. this.refBox.append(text);
  9. this.refBox.style.cssText = `
  10. display: block;
  11. width: 100%;
  12. text-align: center;
  13. font-size: 28px;
  14. `;
  15. }
  16. return (
  17. <div ref={target => this.refBox = target}></div>
  18. )
  19. }

上述代码中,this.refBox 相当于 e.target 所之乡的当前元素。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/411837
推荐阅读
相关标签
  

闽ICP备14008679号