React:refs

1.refs字符串形式(官方不推荐)

class Demo extends React.Component{

			render(){

				return(<div>
	<input ref='input1' type="text"placeholder="点击按钮提示数据" />

	<button onClick={this.showData}>按钮</button>

	<input onBlur={this.blurData} ref='input2' type='text' placeholder="失去焦点提示数据"/>
					  </div>)
			}
		
		showData=()=>{
			alert(this.refs.input1.value)
		}

		blurData=()=>{
			alert(this.refs.input2.value)
		}
  } 

2.refs回调函数形式

<input ref={(a)=>{console.log(a)} type="text"placeholder="点击按钮提示数据" />
// <input type="text"placeholder="点击按钮提示数据" />
输出当前节点,即传参a为当前节点

class Demo extends React.Component{
			render(){

				return(<div>
	<input ref={ (c) = >{ this.input1=c } } type="text"placeholder="点击按钮提示数据" />

	<button onClick={this.showData}>按钮</button>

	<input onBlur={this.blurData} ref={ (c) => { this.input2=c } } type='text' placeholder="失去焦点提示数据"/>
					</div>)
			}
		
		showData=()=>{
			alert(this.input1.value)
		}

		blurData=()=>{
			alert(this.input2.value)
		}
}

3.refs API形式

class Demo extends React.Component{
      myRef只能存放一个节点,不能复用,所以定义两次
			myRef1=React.createRef()
			myRef2=React.createRef()

			render(){

				return(<div>
					<input ref={ this.myRef1 } type="text"placeholder="点击按钮提示数据" />
					<button onClick={this.showData}>按钮</button>
					<input onBlur={this.blurData} ref={ this.myRef2 } type='text' placeholder="失去焦点提示数据"/>
					</div>)
			}
		
		showData=()=>{
			console.log(this.myRef1)//current:input
			alert(this.myRef1.current.value)
		}

		blurData=()=>{
			console.log(this.myRef2)
			alert(this.myRef2.current.value)
		}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值