اذهب إلى المحتوى

السؤال

نشر

ما هي طريقة react لتعيين التركيز على حقل نصي معين بعد تشغيل المكون؟

يبدو أن التوثيق يقترح استخدام refs ، على سبيل المثال نعيّن ref = "nameInput" في حقل الإدخال الخاص ثم نتصل بـ

this.refs.nameInput.getInputDOMNode().focus(); 

لكن اين يجب ان أستخدم هذا

Recommended Posts

  • 0
نشر

مرحباً بك: 

  1. في البداية تعطي للحقل ref ويكون مثلا عبارة عن callback ref
    class App extends React.Component{
    
      render() {
        return(
          <div>
            <input 
              ref={input => { this.inputRef = input; }} 
            />
          </div>
        );
      }
    }

     

  2. بعد ذلك تقوم بالتركيز على الحقل في أي مكان 
     

    componentDidMount() {
    	this.inputRef.focus();
    }

     

  • 0
نشر

إذا كنت تريد أن تقوم بالتركيز على حقل الإدخال عندما يتم عرض المكون فقط يمكنك ببساطة استخدام ال atteibute الذي يسمى autoFocus مع حقل الإدخال كما يلي:

<input type="text" autoFocus />

أو يمكنك القيام بالتالي لتنفيذ ال focus dynamically:

class App extends Component {
  constructor(props){
    super(props)
    this.inputFocus = utilizeFocus()
  }

  render(){
    return (
      <> 
          <button onClick={this.inputFocus.setFocus}>
             FOCUS
          </button>
          <input ref={this.inputFocus.ref}/>
      </>
    )
  } 
}


const utilizeFocus = () => {
    const ref = React.createRef()
    const setFocus = () => {ref.current &&  ref.current.focus()}

    return {setFocus, ref} 
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...