zoukankan      html  css  js  c++  java
  • React的ref的使用

    例一:获取输入框输入的信息,代替e.target.value

    <div>
              <label htmlFor='addService'>项目名称</label>
              <input 
                    id='addService' 
                    ref={(input)=>{this.input=input}}
                    className='input' 
                    value={this.state.inputValue} 
                    onChange={this.inputChange.bind(this)} /> 
             <button onClick={this.addItem.bind(this)}> 添加项目</button>
    </div> inputChange(e){ console.log(e.target.value); this.setState({ // inputValue: e.target.value // 第一种写法 inputValue: this.input.value // ref写法 }) }

    例二:获取文档中某DOM节点的所有元素

    <ul ref={(ul)=>{this.ul = ul}}>
            {
                this.state.list.map((item,index)=>{
                      return (
                         <Item content={item} 
                               key={index+item}
                               index={index}
                               deleteItem={this.deleteItem.bind(this)}
                                 />
                        )
                 })
          }
     </ul> 
    addItem(){
    // this.setState是异步加载的,ul下边的li动态加载以后,需要用this.setState的回调函数里去统计所有元素
    this.setState({ list: [...this.state.list,this.state.inputValue], inputValue: '' },()=>{ console.log(this.ul.querySelectorAll('li').length,'1111') }) console.log(this.ul.querySelectorAll('li').length,'2222') // 在这打印是错误的数据,需要在this.setState的回调函数里打印 }
  • 相关阅读:
    二 .数据库(Data)操作
    一. 数据库(Data)基础
    五种IO/模型
    并发编程 (协程)
    七.并发编程 (线程池,返回值,回调函数)
    六.并发编程 (线程对列)
    五.并发编程 (线程事件)
    四.并发编程 (线程信号量)
    三.并发编程 (线程锁)
    二.并发编程 (程序中线程操作)
  • 原文地址:https://www.cnblogs.com/linjiu0505/p/11889455.html
Copyright © 2011-2022 走看看