আপনি যদি 16.3+ প্রতিক্রিয়া ব্যবহার করেন তবে রেফ তৈরির জন্য প্রস্তাবিত উপায়টি ব্যবহার করা হচ্ছে React.createRef()
।
class TestApp extends React.Component<AppProps, AppState> {
private stepInput: React.RefObject<HTMLInputElement>;
constructor(props) {
super(props);
this.stepInput = React.createRef();
}
render() {
return <input type="text" ref={this.stepInput} />;
}
}
যখন উপাদানটি মাউন্ট করবে, ref
বৈশিষ্ট্যের current
সম্পত্তি রেফারেন্সকৃত উপাদান / null
ডিওএম উপাদানকে অর্পণ করা হবে এবং যখন এটি আনমসেট করা হবে তখন এটিকে পুনরায় বরাদ্দ করা হবে। সুতরাং, উদাহরণস্বরূপ, আপনি এটি ব্যবহার করে অ্যাক্সেস করতে পারেনthis.stepInput.current
।
আরো জানার জন্য RefObject
দেখুন @ apieceofbart এর উত্তর বা জনসংযোগ createRef()
মধ্যে যোগ করা হয়েছিল।
যদি আপনি প্রতিক্রিয়াটির পূর্ববর্তী সংস্করণ ব্যবহার করেন (<16.3) বা রেফগুলি সেট এবং সেট না করা হয় তখন আরও সূক্ষ্ম নিয়ন্ত্রণের প্রয়োজন হয়, আপনি "কলব্যাক রেফ" ব্যবহার করতে পারেন ।
class TestApp extends React.Component<AppProps, AppState> {
private stepInput: HTMLInputElement;
constructor(props) {
super(props);
this.stepInput = null;
this.setStepInputRef = element => {
this.stepInput = element;
};
}
render() {
return <input type="text" ref={this.setStepInputRef} />
}
}
উপাদানটি মাউন্ট করলে, প্রতিক্রিয়াটি ডিওএম ref
উপাদানটির সাথে কলব্যাক কল করবে এবং null
যখন এটি আনমসেট হবে তখন এটিকে কল করবে । সুতরাং, উদাহরণস্বরূপ, আপনি কেবল এটি ব্যবহার করে অ্যাক্সেস করতে পারেন this.stepInput
।
ref
একটি ইনলাইন ফাংশন ( এই উত্তরের আগের সংস্করণ হিসাবে) এর বিপরীতে ক্লাসে একটি আবদ্ধ পদ্ধতি হিসাবে কলব্যাককে সংজ্ঞায়িত করে আপনি আপডেটের সময় কলব্যাক দু'বার কল করা এড়াতে পারবেন ।
সেখানে ব্যবহার করা হয় একটি API যেখানে ref
(দেখুন অ্যাট্রিবিউট একটি স্ট্রিং ছিল অক্ষর প্যাটেল এর উত্তর ), কিন্তু কারণে কিছু সমস্যা , স্ট্রিং refs জোরালোভাবে নিরুৎসাহিত হয়ে এবং শেষ পর্যন্ত মুছে ফেলা হবে।
প্রতিক্রিয়া 16.3 এর নতুন পদ্ধতিতে যুক্ত করার জন্য 22 মে, 2018 সম্পাদিত। একটি নতুন উপায় আছে তা দেখানোর জন্য @ পেপিসোফবার্টকে ধন্যবাদ জানাই।
refs
শ্রেণীর বৈশিষ্ট্য সহ নীচের উদাহরণগুলি আসন্ন প্রতিক্রিয়া সংস্করণগুলিতে হ্রাস করা হবে।