美文网首页
React ref属性

React ref属性

作者: 灯光树影 | 来源:发表于2018-09-22 21:19 被阅读0次

一、用途

ref属性允许我们使用react操作真实DOM

二、用法

<input ref={(input) => this.input = input}/> 

ref属性的值是一个箭头函数,参数接收真实的DOM
通过ref将this.input设置为input标签,那么在方法中就可以直接操纵它

useDom(){
  console.log(this.input)
}

三、注意事项

由于setState方法是异步的,所以DOM操作应该放在setState中的回调函数中进行。

<ul ref={(ul) => this.ul = ul}>
        {
            this.getTodoItem()
        }
</ul>

上面是一个列表,有一个按钮点击后就打印ul中li的个数

// 提交按钮处理函数
handleBtnClick(){
    // preState相当于this.state
    this.setState((preState) => ({
        list: [...preState.list, preState.inputValue],
        inputValue: ''
    }))
    console.log(this.ul.querySelectorAll('li').length)
}

运行会发现,打印的结果不正确,总是比真实的li少一个。这是因为setState是异步执行的,console.log()比setState早运行。
正确的写法是:

// 提交按钮处理函数
handleBtnClick(){
    // preState相当于this.state
    this.setState((preState) => ({
        list: [...preState.list, preState.inputValue],
        inputValue: ''
    }), function(){
        console.log(this.ul.querySelectorAll('li').length)
    })
}

相关文章

  • React ref属性

    一、用途 ref属性允许我们使用react操作真实DOM 二、用法 ref属性的值是一个箭头函数,参数接收真实的D...

  • React.createRef 和 React.forwardR

    React.createRef React.createRef 创建一个能够通过 ref 属性附加到 React ...

  • React获取DOM

    React获取DOM的方法简述 createRef 当 ref 属性在组件时,获取组件实例;当ref属性在dom时...

  • React 可控不可控组件

    拿到组件的节点 通过ref属性,然后调用React.findDOMNode("ref_name"); 可控组件如果...

  • React ref属性使用

    React Refs React 支持一种非常特殊的属性 Ref ,你可以用来绑定到 render() 输出的任何...

  • react的ref属性

    ref在react里面总共有3种写法:字符串形式,回调函数形式,createRef。 1.字符串形式(该形式已经被...

  • ReactJS_13 React Refs、this.props

    React Refs React 支持一种非常特殊的属性 Ref ,你可以用来绑定到 render() 输出的任何...

  • react-ref

    ref:react对真实dom的引用 ref在reactElement上 ref在react组件上

  • react中使用ref属性

    react提供ref属性,主要是为了对组件真正实例的引用,其实是ReactDOM.render()返回的组件实例;...

  • React-ref属性使用

    React为我们提供的这个ref属性,可以打破React对虚拟DOM 的限制;对元素真正实例的引用,也就是渲染视图...

网友评论

      本文标题:React ref属性

      本文链接:https://www.haomeiwen.com/subject/obixoftx.html