zoukankan      html  css  js  c++  java
  • react中input自动聚焦问题

    input自动聚焦问题

    在react中可以使用refs解决这个问题,首先看一下refs的使用场景:

    (1)处理焦点、文本选择或媒体控制。

    (2)触发强制动画。

    (3)集成第三方 DOM 库。

    使用refs解决input聚焦的问题有两种应用场景:

    1、组件内部:

    在input内部定义ref,当给 HTML 元素添加 ref 属性时,ref 回调接收了底层的 DOM 元素作为参数。例如,下面的代码使用 ref 回调来存储 DOM 节点的引用。

    class CustomTextInput extends React.Component {
          constructor(props) {
            super(props);
            this.focus = this.focus.bind(this);
          }
    
          focus() {
            // 直接使用原生 API 使 text 输入框获得焦点
            this.textInput.focus();
          }
    
          render() {
            // 使用 `ref` 的回调将 text 输入框的 DOM 节点存储到 React
            // 实例上(比如 this.textInput)
            return (
              <div>
                <input type="text" ref={(input) => { this.textInput = input; }} />
                <input
                  type="button"
                  value="Focus the text input"
                  onClick={this.focus}
                />
              </div>
            );
          }
        }

    2、父子组件:

    子组件内input定义为:

      import React from 'react';
    
        class Input extends React.Component {
            constructor(props){
                super(props);
            };
    
            render() {
                return <input type="text" ref={this.props.inputRef}/>;
            }
        }
    
    export default Input;

    父组件调用方法:

    <Input name="中文姓" id="surname" placeholder="与身份证一致" inputRef={el => this.surname = el}/>
    
    componentDidMount() {
        this.surname.focus();
    }
  • 相关阅读:
    装饰器
    异常处理与断言
    例子:对象构造函数指定类型传入参数(描述符与装饰器的应用)
    Python的描述符
    全新开始fighting
    函数相关知识
    集合的介绍以及简单方法
    列表,元组,字典类的常见简单方法
    Python简单字符串函数介绍
    聚合函数及分组查询及F&Q
  • 原文地址:https://www.cnblogs.com/sunLemon/p/9020882.html
Copyright © 2011-2022 走看看