1,字符串形式
<!-- 创建盒子 -->
<div id="test">
</div>
<script type="text/babel">
class Demo extends React.Component{
render(){
return(
<div>
<input type="text" ref='input1' />
<button onClick={this.showDate}>点我提示左侧的数据</button>
<input type="text" onBlur={this.shhowDate1} ref='input2'/>
</div>
)
}
showDate = () =>{
console.log(this.refs.input1.value,'input1')
}
shhowDate1 = () =>{
console.log(this.refs.input2.value,'input1')
}
}
ReactDOM.render(<Demo />,document.getElementById('test'))
</script>
2,回调形式
/**
* 1,在标签上使用回调形式
* <input type="text" ref={c =>this.input1 = c }/>
* 2,使用获取
* this.input1
* **/
<!-- 创建盒子 -->
<div id="test">
</div>
<script type="text/babel">
class Test extends React.Component {
render(){
return (
<div>
<input type="text" ref={c =>this.input1 = c }/>
<button onClick={this.showDate}>点我</button>
<input type="text" ref={c =>this.input2 = c}/>
</div>
)
}
showDate = () =>{
console.log(this.input1.value)
console.log(this.input2.value)
}
}
ReactDOM.render(<Test />,document.getElementById('test'))
</script>
3,createRef形式
/**
* 1,引用语法
* aaa = React.createRef()
* 2,定义在标签上
* <input type="text" ref={this.aaa}/>
* 3,使用获取
* console.log(this.aaa.current.value,'this.mydata')
* **/
<script type="text/babel">
class MyComponent extends React.Component{
/**
* 1,引用语法
* React.
* **/
mydata = React.createRef()
mydata1 = React.createRef()
render(){
return (
<div>
<input type="text" ref={this.mydata}/>
<button onClick={this.clickDate} >点击</button>
<input type="text" ref={this.mydata1} onBlur={this.clickDate1}/>
</div>
)
}
clickDate = () =>{
console.log(this.mydata.current.value,'this.mydata')
}
clickDate1 = () =>{
console.log(this.mydata1.current.value,'this.mydata1')
}
}
ReactDOM.render(<MyComponent/>,document.getElementById('test'))
</script>