Saya tahu di vanilla js, kita bisa melakukannya
onclick="f1();f2()"
Apa yang setara untuk membuat dua panggilan fungsi onClick di ReactJS?
Saya tahu memanggil satu fungsi seperti ini:
onClick={f1}
Saya tahu di vanilla js, kita bisa melakukannya
onclick="f1();f2()"
Apa yang setara untuk membuat dua panggilan fungsi onClick di ReactJS?
Saya tahu memanggil satu fungsi seperti ini:
onClick={f1}
Jawaban:
Gabungkan dua + pemanggilan fungsi Anda dengan fungsi / metode lain. Berikut beberapa varian dari gagasan itu:
1) Metode terpisah
var Test = React.createClass({
onClick: function(event){
func1();
func2();
},
render: function(){
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
});
atau dengan kelas ES6:
class Test extends React.Component {
onClick(event) {
func1();
func2();
}
render() {
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
}
2) Sebaris
<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a>
atau setara ES6:
<a href="#" onClick={() => { func1(); func2();}}>Test Link</a>
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promises
mungkin jawaban yang Anda cari.
Mungkin Anda bisa menggunakan fungsi panah (ES6 +) atau deklarasi fungsi lama yang sederhana.
Jenis deklarasi fungsi normal ( Bukan ES6 + ):
<link href="#" onClick={function(event){ func1(event); func2();}}>Trigger here</link>
Fungsi anonim atau jenis fungsi panah ( ES6 + )
<link href="#" onClick={(event) => { func1(event); func2();}}>Trigger here</link>
Yang kedua adalah jalan terpendek yang saya tahu. Semoga membantu Anda!
Memanggil beberapa fungsi di onClick untuk elemen apa pun, Anda dapat membuat fungsi pembungkus, seperti ini.
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
Fungsi-fungsi ini dapat didefinisikan sebagai metode pada kelas induk dan kemudian dipanggil dari fungsi pembungkus.
Anda mungkin memiliki elemen utama yang akan menyebabkan onChange seperti ini,
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
ini sangat onclick={()=>{ f1(); f2() }}
membantu saya jika saya menginginkan dua fungsi yang berbeda pada saat yang bersamaan. Tapi sekarang saya ingin membuat audiorecorder hanya dengan satu tombol. Jadi jika saya mengklik pertama saya ingin menjalankan StartFungsi f1()
dan jika saya mengklik lagi maka saya ingin menjalankan StopFungsi f2()
.
Bagaimana kalian menyadari ini?
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; } }
Anda dapat menggunakan file bersarang.
Ada fungsi derek satu openTab()
dan lainnya adalah closeMobileMenue()
, Pertama kita panggil openTab()
dan panggil fungsi lain di dalamnya 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 = ...
atauaddEventListener
.