আপনি যদি কেবল এটির কারণেই করেন যে আপনি চান শিশুটি তার পিতামাতাকে পুনরায় ব্যবহারযোগ্য বৈশিষ্ট্য সরবরাহ করতে পারে তবে আপনি তার পরিবর্তে রেন্ডার-প্রপস ব্যবহার করে সেই বিষয়টি বিবেচনা করতে পারেন ।
সেই কৌশলটি প্রকৃতপক্ষে কাঠামোটিকে উল্টো দিকে ঘুরিয়ে দেয়। Child
এখন, পিতা বা মাতা গোপন তাই আমি এটি নতুন নামকরণ হয়েছে AlertTrait
কম। নামটি Parent
ধারাবাহিকতার জন্য রেখেছি , যদিও এখন এটি সত্যিকারের পিতামহ নয়।
// Use it like this:
<AlertTrait renderComponent={Parent}/>
class AlertTrait extends Component {
// You may need to bind this function, if it is stateful
doAlert() {
alert('clicked');
}
render() {
return this.props.renderComponent(this.doAlert);
}
}
class Parent extends Component {
render() {
return (
<button onClick={this.props.doAlert}>Click</button>
);
}
}
এই ক্ষেত্রে, অ্যালার্টট্রেট এক বা একাধিক বৈশিষ্ট্য সরবরাহ করে যা এটি তার প্রোপগুলিতে দেওয়া হয় এমন উপাদানগুলির প্রপস হিসাবে এটি নিচে যায় renderComponent
।
পিতা-মাতা প্রপস doAlert
হিসাবে গ্রহণ করে এবং যখন প্রয়োজন হয় তখন এটি কল করতে পারে।
(স্পষ্টতার জন্য, আমি renderComponent
উপরের উদাহরণে প্রপ কল করেছি But তবে উপরে লিঙ্কযুক্ত প্রতিক্রিয়া দস্তাবেজে তারা কেবল এটি কল করেছে render
))
বৈশিষ্ট্য উপাদানটি তার রেন্ডার কার্যক্রমে পিতামাতার চারপাশে রেন্ডার করতে পারে তবে এটি পিতামাতার অভ্যন্তরে কোনও কিছুই সরবরাহ করে না। প্রকৃতপক্ষে এটি পিতামাতার ভিতরে জিনিসগুলি রেন্ডার করতে পারে, যদি এটি পিতামাতার কাছে অন্য প্রপ (উদাহরণস্বরূপ renderChild
) পাস করে , যা পিতামাতার তার রেন্ডার পদ্ধতির সময় ব্যবহার করতে পারে।
এটি ওপি যা চেয়েছিল তার থেকে কিছুটা পৃথক, তবে কিছু লোক এখানেই শেষ হতে পারে (যেমনটি আমরা করেছি) কারণ তারা পুনরায় ব্যবহারযোগ্য বৈশিষ্ট্য তৈরি করতে চেয়েছিল এবং মনে করেছিল যে কোনও সন্তানের উপাদান এটি করার জন্য একটি ভাল উপায়।