React工作32:onref

简介: React工作32:onref
// 父组件
import React from 'react'
import Son from './son'
import { Button } from 'antd'
class Father extends React.Component {
  child: any
  constructor(props) {
    super(props)
  }
  sonRef = (ref) => {
    this.child = ref // 在这里拿到子组件的实例
  }
  clearSonInput = () => {
    this.child.clearInput()
  }
  render() {
    return (
      <div>
        <Son onRef={this.sonRef} />
        <Button type='primary' onClick={this.clearSonInput}>
          清空子组件的input
        </Button>
      </div>
    )
  }
}
export default Father
// 子组件
import React from 'react'
import { Button } from 'antd'
interface IProps {
  onRef: any
}
class Son extends React.Component<IProps> {
  constructor(props) {
    super(props)
  }
  componentDidMount() {
    this.props.onRef(this) // 在这将子组件的实例传递给父组件this.props.onRef()方法
  }
  state = {
    info: 'son',
  }
  handleChange = (e) => {
    this.setState({
      info: e.target.value,
    })
  }
  clearInput = () => {
    this.setState({
      info: '',
    })
  }
  render() {
    return (
      <div>
        <div>{this.state.info}</div>
        <input type='text' onChange={this.handleChange} />
      </div>
    )
  }
}
export default Son
相关文章
|
前端开发
React工作63:ant design 锚点
React工作63:ant design 锚点
406 0
|
前端开发 JavaScript
React工作42:react中的jsx表达对象
React工作42:react中的jsx表达对象
73 0
|
前端开发
React工作18:工具学会全局搜索
React工作18:工具学会全局搜索
89 0
React工作18:工具学会全局搜索
|
前端开发
React工作16:ant design form两种验证
React工作16:ant design form两种验证
86 0
React工作16:ant design form两种验证
|
前端开发
React工作15:ant design table selectedRowKeys是取数组集合
React工作15:ant design table selectedRowKeys是取数组集合
225 0
|
前端开发
React工作17:ant design form格式化日期
React工作17:ant design form格式化日期
101 0
|
前端开发
React工作64:简单的锚点封装
React工作64:简单的锚点封装
257 0
|
前端开发
React工作75:ant design 锚点
React工作75:ant design 锚点
152 0
|
前端开发
React工作19:react设置默认值
React工作19:react设置默认值
156 0
|
前端开发
React工作20:token的获取
React工作20:token的获取
88 0
React工作20:token的获取