美文网首页
onRefs的使用

onRefs的使用

作者: any_5637 | 来源:发表于2019-11-01 10:43 被阅读0次

用于父子之间通信

在开发过程中,父组件给子组件传递数据可以使用props进行,但是,父组件想要拿到子组件的数据或者是触发子组件的方法应该怎么实现呢?通过了解,我们可以使用
父组件想要操作子组件方法或者改变子组件的数据可以使用onRefs:

  // 在子组件中:
  import React    from 'react';
  import ReactDOM from 'react-dom';
  export default class OnRefsTest extends React.Component {
    constructor(props) {
      super(props);
      props.onRef(this);
      this.state = {
        number: 0,
      };
    }
    onClick =() => {
      const { number } = this.state;
      this.setState({
        number: ++ this.state.number,
      });
      console.log(this.state.number);
    }
    render() {
      return (
        <div>
          <span>{this.state.number}</span>
          <button onClick={this.onClick}>加加加</button>
        </div>
      )
    }
  }

这里随意定义了一个函数和状态state,在构造函数中,使用props.onRef(this)子组件绑定到父组件。

  import React from 'react';
  import './App.css';
  import OnRefsTest from './component/OnRefs.js';

  export default class App extends React.Component {
    test;
    hanleClick=() =>{
      this.test.onClick();
    };
    render() {
      return (
        <div className="App">
          <OnRefsTest  
            onRef={node => {
              this.test = node;
            }}
          />
          <button onClick={this.hanleClick}>点击</button>
        </div>
      );
    }
  }

在父组件中,定义一个test对象,并将子组件通过onRef属性将子组件dom赋值给父组件,这样父组件就可以调用子组件的方法,改变子组件的状态。
运行代码,点击父组件的按钮,在控制台可以看到子组件的number值的改变。


image.png

用于获取dom实例

  import React    from 'react';
  import ReactDOM from 'react-dom';

  export default class autoFocus extends React.Component {
    textInput;
    componentDidMount() {
      this.textInput.focus();// 自动聚焦
      this.textInput.placeholder='jjj';
    }
    render() {
      return(
        <input ref={node => { this.textInput = node }}></input>
      )
    }
  }

运行程序可以看到,输入框自动聚焦,初始值为’jjj’。


image.png

相关文章

  • onRefs的使用

    用于父子之间通信 在开发过程中,父组件给子组件传递数据可以使用props进行,但是,父组件想要拿到子组件的数据或者...

  • React refs和onRefs的使用

    父组件代码块 子组件代码块 父组件向子组件传值主要依靠父组件中parentMethods将方法和变量传递到子组件中...

  • react路由跳转传参方式

    react在路由跳转进行传参有以下几种方式:1. params方式传参app.js 子组件OnRefs.js 组件...

  • iconfont的使用(下载使用)

    1、下载文件 2、在生命周期中引入项目 beforeCreate () { var domModule = ...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 记录使用iframe的使用

    默认记录一下----可以说 这是我第一次使用iframe 之前都没有使用过; 使用方式: 自己开发就用了这几个属...

  • with的使用

    下面例子可以具体说明with如何工作: 运行代码,输出如下

  • this的使用

    什么是this? this是一个关键字,这个关键字总是返回一个对象;简单说,就是返回属性或方法“当前”所在的对象。...

  • this的使用

    JS中this调用有几种情况 一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象...

  • ==的使用

    积累日常遇到的编码规范,良好的编码习惯,持续更新。。。 日常使用==用于判断的时候,习惯性将比较值写前面,变量写后...

网友评论

      本文标题:onRefs的使用

      本文链接:https://www.haomeiwen.com/subject/znwzvctx.html