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的回调函数里打印 }
  • 相关阅读:
    linux查看与设置主机名
    为什么用户主目录下.bash_profile没有自动执行
    sqlplus查看服务名
    linux之cp/scp命令+scp命令详解
    查看磁盘使用量
    yum源
    微软输入法删除
    Android下 ionic view 无法登录
    inline-block在ie6中的经典bug
    Apache端口配置
  • 原文地址:https://www.cnblogs.com/linjiu0505/p/11889455.html
Copyright © 2011-2022 走看看