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();
    }
  • 相关阅读:
    POJ 2159 Ancient Cipher 难度:0
    POJ 3299 Humidex 难度:0
    POJ 1503 Integer Inquiry 大数 难度:0
    POJ 2262 Goldbach's Conjecture 数学常识 难度:0
    POJ 1083 Moving Tables 思路 难度:0
    PAT 甲级 1126 Eulerian Path
    Java 大数运算
    PAT 甲级 1010 Radix
    PAT 甲级 1137 Final Grading
    PAT 甲级 1064 Complete Binary Search Tree
  • 原文地址:https://www.cnblogs.com/sunLemon/p/9020882.html
Copyright © 2011-2022 走看看