আপনি রেফ ব্যবহার না করে এটি করতে পারেন । এই পদ্ধতির পছন্দসই, যেহেতু রেফগুলি ভঙ্গুর কোডের দিকে নিয়ে যেতে পারে । প্রতিক্রিয়া ডক্স যেখানে সম্ভব অন্যান্য সমাধানের খোঁজার পরামর্শ:
আপনি যদি প্রতিক্রিয়া সহ বেশ কয়েকটি অ্যাপ্লিকেশন প্রোগ্রাম না করে থাকেন তবে আপনার প্রথম প্রবণতাটি সাধারণত আপনার অ্যাপ্লিকেশনটিতে "জিনিসগুলি ঘটানোর জন্য" রেফ ব্যবহার করার চেষ্টা করে। যদি এটি হয় তবে একটি মুহুর্ত নিন এবং উপাদানটির স্তরক্রমের ক্ষেত্রে রাজ্যের মালিকানা কোথায় হওয়া উচিত তা নিয়ে আরও সমালোচনা করুন। প্রায়শই, এটি স্পষ্ট হয়ে যায় যে সেই রাজ্যের "নিজস্ব" হওয়ার উপযুক্ত জায়গাটি স্তরক্রমের উচ্চ স্তরে। সেখানে রাষ্ট্র স্থাপন করা প্রায়শই "জিনিসগুলি ঘটানোর জন্য" রেফ ব্যবহার করার যে কোনও ইচ্ছা দূর করে - পরিবর্তে, ডেটা প্রবাহ সাধারণত আপনার লক্ষ্য অর্জন করবে।
পরিবর্তে, আমরা দ্বিতীয় ইনপুট ক্ষেত্রে ফোকাস করতে একটি রাষ্ট্র পরিবর্তনশীল ব্যবহার করব।
একটি স্টেট ভেরিয়েবল যুক্ত করুন যা আমরা প্রপোজ হিসাবে পাস করব DescriptionInput
:
initialState() {
return {
focusDescriptionInput: false,
};
}
একটি হ্যান্ডলার পদ্ধতি সংজ্ঞায়িত করুন যা এই রাষ্ট্রের পরিবর্তনশীলকে সত্যে সেট করবে:
handleTitleInputSubmit() {
this.setState(focusDescriptionInput: true);
}
প্রবেশ করার পরে / প্রবেশ করার পরে / পাশ করে TitleInput
, আমরা কল করব handleTitleInputSubmit
। এটি focusDescriptionInput
সত্য হয়ে যাবে।
<TextInput
style = {styles.titleInput}
returnKeyType = {"next"}
autoFocus = {true}
placeholder = "Title"
onSubmitEditing={this.handleTitleInputSubmit}
/>
DescriptionInput
এর focus
প্রপস আমাদের focusDescriptionInput
রাষ্ট্র পরিবর্তনশীলে সেট করা আছে । সুতরাং, যখন focusDescriptionInput
পরিবর্তনগুলি (3 ধাপে) DescriptionInput
পুনরায় রেন্ডার হবে focus={true}
।
<TextInput
style = {styles.descriptionInput}
multiline = {true}
maxLength = {200}
placeholder = "Description"
focus={this.state.focusDescriptionInput}
/>
রেফগুলি ব্যবহার এড়াতে এটি একটি দুর্দান্ত উপায়, যেহেতু রেফগুলি আরও ভঙ্গুর কোডের দিকে নিয়ে যেতে পারে :)
সম্পাদনা করুন: hane / t থেকে @LaneRettig এ নির্দেশ করার জন্য যে আপনাকে প্রতিক্রিয়া জানাতে কিছু যুক্ত প্রসেস এবং পদ্ধতিগুলি দিয়ে রিএ্যাক্ট নেটিভ টেক্সট ইনপুটটি মোড়তে হবে focus
:
// Props:
static propTypes = {
focus: PropTypes.bool,
}
static defaultProps = {
focus: false,
}
// Methods:
focus() {
this._component.focus();
}
componentWillReceiveProps(nextProps) {
const {focus} = nextProps;
focus && this.focus();
}