আমি ভ্যানিলা জেএসে জানি, আমরা করতে পারি
onclick="f1();f2()"
রিঅ্যাক্টজেএস-এ ক্লিক করে দুটি ফাংশন কল করার সমতুল্য কী হবে?
আমি জানি একটি ফাংশন কল করা এইরকম:
onClick={f1}
আমি ভ্যানিলা জেএসে জানি, আমরা করতে পারি
onclick="f1();f2()"
রিঅ্যাক্টজেএস-এ ক্লিক করে দুটি ফাংশন কল করার সমতুল্য কী হবে?
আমি জানি একটি ফাংশন কল করা এইরকম:
onClick={f1}
উত্তর:
অন্য দুটি ফাংশন / পদ্ধতিতে আপনার দুটি + ফাংশন কলগুলি মোড়ানো। এখানে সেই ধারণার কয়েকটি রূপ রয়েছে:
1) পৃথক পদ্ধতি
var Test = React.createClass({
onClick: function(event){
func1();
func2();
},
render: function(){
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
});
বা ES6 ক্লাস সহ:
class Test extends React.Component {
onClick(event) {
func1();
func2();
}
render() {
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
}
2) ইনলাইন
<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a>
বা ES6 সমতুল্য:
<a href="#" onClick={() => { func1(); func2();}}>Test Link</a>
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promisesসম্ভবত আপনি যে উত্তরটি খুঁজছিলেন তা
হতে পারে আপনি তীর ফাংশন (ES6 +) বা সাধারণ পুরানো ফাংশন ঘোষণাটি ব্যবহার করতে পারেন।
সাধারণ ফাংশন ঘোষণার প্রকার ( ES6 + নয় ):
<link href="#" onClick={function(event){ func1(event); func2();}}>Trigger here</link>
বেনামে ফাংশন বা তীর ফাংশন প্রকার ( ES6 + )
<link href="#" onClick={(event) => { func1(event); func2();}}>Trigger here</link>
দ্বিতীয়টি হ'ল সংক্ষিপ্ততম রাস্তা যা আমি জানি। আশা করি এটি আপনাকে সাহায্য করবে!
যে কোনও উপাদানটির জন্য অনক্লিকটিতে একাধিক ফাংশন কল করা, আপনি একটি মোড়ক ফাংশন তৈরি করতে পারেন, এরকম কিছু।
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
এই ফাংশনগুলি প্যারেন্ট ক্লাসে একটি পদ্ধতি হিসাবে সংজ্ঞায়িত করা যায় এবং তারপরে র্যাপার ফাংশন থেকে ডাকা হয়।
আপনার কাছে মূল উপাদান থাকতে পারে যা এইভাবে অন চেঞ্জের কারণ ঘটবে,
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
এই onclick={()=>{ f1(); f2() }}আমাকে অনেক সাহায্য করেছে যদি আমি একই সময়ে দুটি ভিন্ন ফাংশন চাই। তবে এখন আমি কেবল একটি বোতাম দিয়ে একটি অডিওরেকর্ডার তৈরি করতে চাই। সুতরাং আমি যদি প্রথম ক্লিক করি তবে আমি স্টার্টফানশনটি চালাতে চাই f1()এবং যদি আমি আবার ক্লিক করি তবে আমি স্টপফানশনটি চালাতে চাই f2()।
তোমরা কীভাবে বুঝতে পার?
const play = () => { console.log("played"); } const pause = () => { console.log("paused"); } function* audioSwitcher() { let paused = true; while (true) { if(paused) { play(); } else { pause(); } yield paused = !paused; } }
আপনি নেস্টেড ব্যবহার করতে পারেন।
এখানে দুটি ফাংশন রয়েছে একটি openTab()এবং অন্যটি হ'ল closeMobileMenue()প্রথমে আমরা কল করি openTab()এবং ভিতরে অন্য ফাংশনটি কল করি closeMobileMenue()।
function openTab() {
window.open('https://play.google.com/store/apps/details?id=com.drishya');
closeMobileMenue() //After open new tab, Nav Menue will close.
}
onClick={openTab}
ele.onclick = ...বা করতে চানaddEventListener।